Aggiunta di un nuovo utente MySQL semplificata: una guida completa
Questo tutorial ti mostrerà come aggiungere un nuovo utente a MySQL e concedere diversi tipi di privilegi a un database MySQL.
Se sei nuovo su MySQL o hai bisogno di un ripasso su come aggiungere un nuovo utente e concedere privilegi di accesso, sei nel posto giusto. Il server MySQL consente di creare numerosi account utente e concedere privilegi appropriati in modo che gli utenti possano accedere e gestire i database, garantendo che solo gli utenti autorizzati possano eseguire azioni specifiche.
Quindi, una volta installato MySQL sul server, è necessario creare un database e account utente aggiuntivi. Questa guida ti guiderà attraverso l'aggiunta di un nuovo utente MySQL e la concessione dei privilegi di accesso necessari.
Per eseguire i comandi mostrati in questa guida, devi prima accedere al server MySQL con l'account root MySQL.
mysql -u root -p
Come creare un nuovo utente MySQL
L'istruzione CREATE USER
crea un nuovo utente nel server del database MySQL. Ecco la sintassi di base dell'istruzione:
CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';
Sostituisci nome utente
e password
con il nome utente e la password desiderati nella sintassi sopra.
Imposta hostname
su localhost
se desideri che l'utente possa connettersi a MySQL Server solo dal localhost, che significa "questo computer". Se vuoi che l'utente possa connettersi da qualsiasi host, utilizza il carattere jolly %
come nome host.
Ad esempio, creeremo un utente con il nome james
e la password MyStrongPass123
utilizzando il seguente comando:
CREATE USER 'james'@'localhost' IDENTIFIED BY 'MyStrongPass123';
Tuttavia, questo utente potrà lavorare con i database MySQL solo dopo avergli concesso privilegi aggiuntivi.
Come concedere privilegi a un utente MySQL
Dopo aver creato con successo il nuovo utente, possiamo concedere i privilegi a questo nuovo utente. Nella maggior parte dei casi, concederai privilegi agli utenti MySQL in base al particolare database a cui l'account dovrebbe avere accesso.
È possibile concedere più tipi di privilegi a un account utente. Puoi trovare un elenco completo dei privilegi supportati da MySQL qui.
TUTTI I PRIVILEGI
: concede tutti i privilegi a un account utente.ALTER
– L'utente può modificare la struttura di una tabella o di un database.CREATE
: all'account utente è consentito creare database e tabelle.DROP
- L'account utente è autorizzato a eliminare database e tabelle.DELETE
- L'account utente può eliminare righe da una tabella specifica.INSERT
– L'account utente può inserire righe in una tabella specifica.SELECT
- L'account utente è autorizzato a leggere un database.UPDATE
- L'account utente è autorizzato ad aggiornare le righe della tabella.
Per fornire a un utente l'accesso al database MySQL e concedere le autorizzazioni, generalmente è necessario utilizzare la seguente istruzione GRANT
:
GRANT permission_type ON privilege_level TO 'username'@'hostname';
Ad esempio, per concedere tutti i privilegi all'utente james
sul database jamesdb
, utilizzare il seguente comando:
GRANT ALL PRIVILEGES ON jamesdb.* TO 'james'@'localhost';
Tuttavia, digita quanto segue per concedere solo i privilegi SELECT
e INSERT
all'utente james
sul database jamesdb
:
GRANT SELECT, INSERT ON jamesdb.* TO 'james'@'localhost';
Inoltre, se desideri concedere l'accesso non all'intero database ma solo a una singola tabella, puoi farlo come mostrato di seguito.
Ad esempio, concediamo i privilegi SELECT
all'utente james
solo sulla tabella salaries
nel database employees
':
GRANT SELECT ON employees.salaries TO 'james'@'localhost';
Creazione di un nuovo superutente MySQL
In alcune situazioni potrebbe essere necessario creare un superutente con autorizzazioni simili all'utente root di MySQL.
Quindi, per garantire a un utente gli stessi privilegi dell'utente root MySQL, utilizza il seguente comando, che fornisce privilegi globali all'utente james
che si connette tramite localhost
:
GRANT ALL ON *.* TO 'james'@'localhost' WITH GRANT OPTION;
Modifica la password di un account utente MySQL
Supponiamo di voler cambiare la password per l'utente james
che si connette da localhost
a NewStrongPass123
; è necessario eseguire la seguente istruzione SQL:
ALTER USER 'james'@'localhost' IDENTIFIED BY 'NewStrongPass123';
Nell'istruzione SQL precedente, assicurati di modificare james
con l'utente del database e localhost
con l'host dell'utente.
Inoltre, se hai dimenticato la password di root di MySQL e non sei sicuro su come reimpostarla, consulta la nostra guida sull'argomento.
Mostra privilegi per un utente in MySQL
In MySQL, puoi utilizzare il comando SHOW GRANTS
per visualizzare tutte le informazioni sulle concessioni per un utente. Facciamo alcuni esempi.
La seguente istruzione utilizza l'istruzione SHOW GRANTS
per visualizzare i privilegi concessi all'utente corrente:
SHOW GRANTS;
Per visualizzare le concessioni per un utente MySQL, puoi utilizzare SHOW GRANTS
mentre specifichi il nome utente:
SHOW GRANTS FOR 'james'@'localhost';
Revoca i privilegi da un account utente MySQL
La sintassi per revocare uno o più privilegi da un account utente è quasi identica a quella per la concessione dei privilegi.
Se devi revocare i privilegi all'utente james
su un database jamesdb
, applica la sintassi simile a quella utilizzata per concedere le autorizzazioni:
REVOKE ALL PRIVILEGES ON jamesdb.* FROM 'james'@'localhost';
Rimuovi utente da MySQL
Invece di revocare i privilegi, potresti voler rimuovere quell'utente. Quindi, puoi rimuovere un utente del database usando il seguente comando:
DROP USER 'james'@'localhost';
Il comando precedente rimuoverà l'utente james
e tutti i suoi privilegi.
Salvataggio delle modifiche
Come passaggio finale, utilizza il comando FLUSH PRIVILEGES
ogni volta che aggiorni o modifichi l'autorizzazione.
FLUSH PRIVILEGES;
Conclusione
Aggiungere un nuovo utente MySQL e concedere i privilegi di accesso è fondamentale per gestire il database e garantire che solo gli utenti autorizzati possano eseguire azioni specifiche. Dopo aver completato questo tutorial, dovresti sapere come aggiungere nuovi utenti e concedere loro varie autorizzazioni in un database MySQL.
Utilizza sempre password complesse e univoche per i tuoi utenti per aumentare la sicurezza e valuta la possibilità di revocare o modificare le autorizzazioni secondo necessità. Con un po' di pratica diventerai un professionista nell'aggiunta e nella gestione degli utenti MySQL in pochissimo tempo.
Se avete domande o feedback, sentitevi liberi di commentare.