mercoledì 12 gennaio 2011

Siti dinamici locali: utenti database ed utenti sito

A volte sento un po' di confusione nella comprensione dell'individuazione dei ruoli di utente se si devono gestire più siti nello stesso server web, specie se in locale per fare tutte le prove del caso.

Per questo motivo ho scritto queste brevi note di chiarimento, sperando che siano utili.
Prendo come esempio di base un'installazione in locale di Joomla, ma il discorso può essere esteso ovviamente ad altri siti dinamici.

Il nome utente e la password del principale utente del database di Joomla, ed il nome dell'amministratore e la relativa password necessari per entrare nel sito con i privilegi di amministrazione NON SONO LA STESSA COSA.
Nulla ci impedisce di inserire gli stessi parametri (lo stesso nome e la stessa password in entrambi i casi, anche se sotto il profilo della sicurezza è una stupidaggine) ma l'importante è comprendere la distinzione fra questi.
Per chiarire meglio, riassumiamo le funzioni:
Nel mysql server, che può contenere numerosi database, esistono:
  • l'utente principale (ordinariamente, ma non necessariamente, chiamato root) con la sua password, che può accedere al server mysql via terminale o via http://localhost/phpmyadmin; questo utente gestisce TUTTI i database presenti nel server, non solo quello di Joomla, ed infatti è presente in TUTTI i database tra quelli elencati; per verificarlo, una volta entrati in phpmyadmin con questi privilegi, selezioniamo un database alla volta e riscontriamo la presenza di questo utente alla voce 'privilegi';
  • gli utenti, con la loro password (solitamente, ma non esclusivamente, uno per ogni database), che possono accedere ad uno specifico database per amministrarlo (questi utenti devono essere impostati in ogni specifico database); per ogni sito presente (lo stesso server web può ospitare molti siti), lo specifico utente viene utilizzato direttamente dal sito stesso in fase di amministrazione dello specifico database dello specifico sito, tanto è vero che bisogna impostarlo all'atto della configurazione iniziale (in altre parole, bisogna dire al sito quale è il database associato e con quale utente amministrativo poter gestire i dati).

Per quanto riguarda il sito, invece, esiste l'utente amministratore, con la sua password, che è l'unico a poter amministrare il sito entrando dal back end (le cartelle aministrative; in locale: http://localhost/nomesito/administrator), e gli utenti, con le loro password, che possono entrare nelle loro aree riservate attraverso il front end (il login entro il sito visualizzabile dal browser) senza privilegi di amministrazione


Per chiarire meglio, vediamo un esempio (NB tutti i nomi e le password di seguito riportati sono casuali, sono utilizzati solo a titolo di esempio e, soprattutto, NON rispettano i requisiti minimi di sicurezza, quindi NON USATELI).
Nel server web locale sono stati caricati, ancora da installare, un sito chiamato Joomla (CMS) ed un sito chiamato ZenCart (eCommerce) (per 'sito chiamato' si intende il nome della cartella che avremo caricato nella cartella root del server web, che di default è posizionata in /var/www/ ma che abbiamo visto poter essere posizionata dove ci pare).
Nel server database mysql locale dovranno essere quindi creati, prima di ogni altra cosa, due database (oltre quelli di default): joomladb e zencartdb.
L'utente chiamato root, con password primo, è quello che può gestire il server database, e quindi può creare e modificare tutti i database, ad es. attraverso http://localhost/phpmyadmin.
L'utente root entra nel server e crea i database; una volta creati, entra in ognuno di questi, seleziona i privilegi e crea il rispettivo utente amministratore dello specifico database.
Per il sito Joomla, crea nel database joomladb l'utente chiamato joomlauserdb, con password joomlapwdb; questo è colui che può gestire il solo database joomladb.
Per il sito ZenCart, crea nel database zencartdb l'utente chiamato zencartuserdb, con password zencartpwdb; questo è colui che può gestire il solo database zencartdb.

Passiamo ai siti.
In fase di installazione, ogni sito chiederà il nome dell'amministratore del sito, con la sua password, per riconoscere chi può entrare nel back end del sito con privilegi di amministratore per modificarlo.
Nel caso di Joomla scegliamo l'utente joomlaadmim con password joomlapwadmin; in Zencart scegliamo l'utente zencartadmin con password zencartpwadmin.
Sempre durante l'installazione, ogni sito chiederà quale è il database associato e quale è l'utente che può amministrarlo; alla richiesta, inseriamo i dati impostati nella creazione dei database.
A questo punto avremo:
  • il sito Joomla (http://localhost/Joomla), che verrà amministrato dall'utente joomlaadmim con password joomlapwadmin (attraverso http://localhost/Joomla/administrator/), e che salverà i dati nel database joomladb attraverso l'utente joomlauserdb con password joomlapwdb;
  • il sito ZenCart, (http://localhost/ZenCart), che verrà amministrato dall'utente zencartadmin con password zencartpwadmin (attraverso http://localhost/ZenCart/admin), e che salverà i dati nel database zencartdb attraverso l'utente zencartuserdb con password zencartpwdb;
Spero di essere stato chiaro :-D

Buon sito a tutti

1 commento:

  1. Thanks a lot for reading this informative article. I am apreciating it very much! Thanks.

    RispondiElimina