Creare un nuovo utente in MySQL e Gestire i Permessi

Introduzione

Per eseguire qualsiasi operazione in MySQL, solitamente si utilizza l’account root, con accesso completo a tutti i database. Tuttavia, in alcuni casi potrebbe essere necessario avere un utente con qualche restrizione, ed è proprio quello che impareremo a fare in questa guida.

Come creare un Nuovo Utente in MySQL

Iniziamo subito creando un nuovo utente dalla shell di MySQL con il seguente comando:

CREATE USER 'pincopallino'@'localhost' IDENTIFIED BY 'password';

A questo punto il nostro utente pincopallino non avrà alcun permesso in nessun database. Infatti, anche se proviamo ad accedere con il nostro nuovo account non potremmo raggiungere la shell di MySQL.

Quindi, la prima cosa da fare è di fornire all’utente l’accesso alle informazioni di cui avrà bisogno eseguendo il seguente comando:

GRANT ALL PRIVILEGES ON * . * TO 'pincopallino'@'localhost';

Gli asterischi in questo comando si riferiscono rispettivamente ai database e alle tabelle a cui questo utente avrà accesso. Il comando consente all’utente di leggere, modificare ed eseguire qualsiasi attività in tutti i database e in tutte le tabelle.

Di conseguenza, con questo comando stiamo garantendo al nostro utente pincopallino i permessi completi di root per accedere a qualsiasi cosa e mentre potrebbe essere utile in alcuni casi, rischiamo di mettere a rischio il nostro database.

Una volta aver terminato di modificare i permessi per il tuo nuovo utente, assicurati sempre di ricaricare tutti i privilegi:

FLUSH PRIVILEGES;

Adesso i tuoi cambiamento sono operativi!

Fornire permessi differenti agli utenti MySQL

Di seguito è riportata una breve lista dei più comuni permessi che possono essere assegnati ad un utente su MySQL:

  • ALL PRIVILEGES: come abbiamo visto prima, questo permesso garantisce ad un utente l’accesso completo ad un determinato database, e in caso questo non fosse specificato, a tutto il sistema MySQL;
  • CREATE: creare nuove tabelle e/o database;
  • DROP: cancellare tabelle e/o database;
  • DELETE: cancellare una o più righe da una tabella;
  • INSERT: inserire una o più righe in una tabella;
  • SELECT: interrogare il database e ottenere informazioni;
  • UPDATE: aggiornare una o più righe di una tabella;
  • GRANT OPTION: aggiungere o rimuovere permessi da un altro utente.

Per aggiungere un determinato permesso a un utente, puoi utilizzare questo comando:

GRANTE permesso ON database.tabella TO 'pincopallino'@'localhost';

Se vuoi aggiungere quel determinato permesso a tutte le tabelle o a tutti i database, assicurati di inserire un asterisco ( * ) al posto di database e tabella nel comando.

Se vuoi revocare un permesso, il comando è identico al precedente, cambia solamente due parole:

REVOKE permesso ON database.tabella FROM 'pincopallino'@'localhost';

Ogni volta che modifichi i permessi di un utente, ricordati di ricaricare i privilegi con il comando che abbiamo visto in precedenza.

Puoi vedere in ogni momento che permessi ha a disposizione un determinato utente utilizzando il seguente comando:

Nel caso si desiderasse eliminare un utente, proprio come per le tabelle, si può utilizzare il comando DROP:

DROP USER 'pincopallino'@'localhost';

Per verificare che la configurazione appena effettuata funzioni come desiderato, è possibile uscire dall’account attuale e poi accedere con quello nuovo, utilizzando i seguenti due comandi:

quit
mysql -u pincopallino -p

Conclusione

Dopo aver letto questa guida dovresti avere una conoscenza di base su come creare nuovi utenti e garantire alcuni permessi per gestire i database in MySQL.

Share

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *