mysql -u root -p
CREATE USER 'gianni'@'localhost' IDENTIFIED BY 'iosonogianni';
il primo “gianni” è di fatto il nome utente che serve per loggarsi, mentre “iosonogianni” è un identificativo. Nell’esempio ho volutamente messo due cose diverse, nella realtà si tende a far coincidere username e identificativo. Fate attenzione agli apici che vanno rispettati anch’essi. “localhost” si riferisce al server MySQL, in questo caso si tratta di un server ospitato nella server locale. Nel caso si tratti di un server remoto occorre mettere l’IP o il nome DNS.
Creare la password per l'utente
set password for 'gianni'@'localhost' = PASSWORD('metti-qui-la-password');
Per verificare che sia andato tutto bene possiamo chiedere la lista degli utenti registrati:
SELECT User,Host FROM mysql.user;
+------------------+-------------------+
| User | Host |
| root | 127.0.0.1 |
| root | localhost |
| gianni | localhost | +------------------+-------------------+ 4 rows in set (0.00 sec)
Ora passiamo alla creazione del database dove il nostro nuovo utente potrà scrivere. Il database si chiamerà “metauro“
CREATE DATABASE metauro;
giusto per sicurezza, vediamo se il nuovo db è stato creato:
SHOW DATABASES;
Possiamo passare a fornire i permessi necessari a “gianni” affinché possa operare sul db “metauro“.
GRANT ALL ON metauro.* TO 'gianni'@'localhost';
Dopo GRANT è presente ALL, che di fatto è un comando. Nella maggioranza dei casi quando diamo accesso è proprio di questo tipo. Significa che l’utente in questione è di fatto l’amministratore per questo database.
Altri tipi di comando alternativi a ALL sono:
- CREATE : permette di creare il database e le tavole.
- UPDATE : permette di aggiornare i dati delle righe di una tavola.
- INSERT : permette di inserire dati nelle righe delle tavole.
- SELECT : permette di leggere i dati nelle righe delle tavole.
- DELETE : permette di cancellare i dati dalle righe di una tavole.
- DROP : permette di cancellare le tavole, le righe e il database intero.
- EXECUTE : permette di eseguire comandi.
- GRANT OPTION : permette di concedere i permessi di accesso ad un altro utente.
- SHOW DATABASES : permette di vedere la lista dei database.
Possiamo concludere le operazioni, rinfrescando i permessi. Non è del tutto necessario, ma è buona norma farlo:
FLUSH PRIVILEGES;
Per avere una controprova, possiamo verificare con questo comando la riuscita delle operazioni:
SHOW GRANTS FOR 'adrubale'@'localhost';
+-------------------------------------------------------------------------------+
| Grants for gianni@localhost |
| GRANT USAGE ON *.* TO 'gianni'@'localhost' IDENTIFIED BY PASSWORD '*..cut' |
| GRANT ALL PRIVILEGES ON 'metauro'.* TO 'gianni'@'localhost' |
+ 2 rows in set (0.00 sec)