Utenti e permessi
L'amministrazione di MySQL può essere particolarmente raffinata e ruota principalmente sulle classi "user", "host"
e "password". Può essere specificato, per esempio, che l'utente "madrid" può solo connettersi dalla
macchina locale e che questi può effettuare solo delle SELECT soltanto sul database specificato. Qualsiasi altra operazione non
gli sara' permessa.
Solo l'utente "root" può compiere ogni operazione su tutti i database e per questo motivo è bene gestire con
cura l'accesso per questo utente. Subito dopo l'installazione di MySql l'utente root non ha password ed è consigliato associare
una password a tale utente appena possibile.
Per collegarsi ad un database server MySQL con l'apposito client:
$ mysql -user=madrid -password=esempio -host=193.122.123.12 database1
In questo modo chiediamo al server di connetterci al database "database1" come utente "madrid" e password "esempio".
La connessione viene richiesta al server che risiede sulla macchina "193.122.123.12" (se l'host non fosse specificato, si
assume che il server stia girando sulla stessa macchina del client)
Come si comporta il server MySQL prima di permettere l'accesso all'utente? Avverrà il controllo sulla correttezza della password,
l'esistenza dell'utente tra gli accessi e accessibilità da particolari host remoti al database indicato. Una volta collegato
il server continua la sua operazione controllando gli accessi per utente e i comandi autorizzati.
Aggiungere utenti e permessi
Colleghiamoci al database server:
$ mysql -u root mysql
Per consentire all'utente "madrid" di poter eseguire interrogazioni (SELECT), aggiornamenti (UPDATE), eliminazioni (DELETE)
sul database "wbs":
> GRANT SELECT,UPDATE,DELETE ON wbs.* TO madrid@localhost
> IDENTIFIED BY 'mypasswd';
Fatto. Abbiamo concesso all'utente in questione la possibilità di agire sulla base dati collegandosi da "localhost"
(la macchina locale del database server).
Modificare le password
E' buona norma cambiare la propria password di collegamento (sopratutto per l'utente amministratore "root"). Colleghiamoci
al database server:
$ mysql -u root mysql
digitiamo:
> SET PASSWORD FOR root=PASSWORD('newpassword');
Abbiamo appena modificato la password in "newpassword". E' possibile compiere la medesima azione con un ulteriore comando:
$ mysqladmin -u root password new_password
Il database di sistema è "mysql" e tutte le sue tabelle contengono i dati riferiti agli utenti e ai loro permessi.
Le tabelle in questione sono "db" e "user". Nella prima sono presenti i permessi degli utenti sui vari database,
nella seconda gli utenti e la loro password. La password è salvata in maniera crittografata.
|