In questo tutorial, aggiungeremo un nuovo utente in MySQL e concederemo diversi tipi di privilegi su un database MySQL.
Il server MySQL ci consente di creare numerosi account utente e concedere privilegi appropriati in modo che gli utenti possano accedere e gestire i database. Dopo aver installato MySQL sul server, devi creare un database e account utente aggiuntivi.
Per eseguire i seguenti comandi, devi prima accedere al server MySQL con l'account root MySQL.
mysql -u root -p
Come creare un nuovo utente MySQL
Il CREATE USER
istruzione crea un nuovo utente nel server di database MySQL. Ecco la sintassi di base dell'istruzione:
CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';
Nella sintassi sopra, assicurati di sostituire il nome utente e password con il nome utente e la password desiderati.
Imposta il hostname
a localhost
se vuoi che l'utente sia in grado di connettersi a MySQL Server solo dal localhost, che significa "questo computer". Se vuoi che l'utente possa connettersi da qualsiasi host, usa 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 non sarà in grado di lavorare con nessuno dei database MySQL finché non gli verranno concessi privilegi aggiuntivi.
Come concedere privilegi a un utente MySQL
Subito dopo aver creato correttamente 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.
Esistono diversi tipi di privilegi che possono essere concessi a un account utente. Puoi trovare un elenco completo dei privilegi supportati da MySQL qui.
ALL PRIVILEGES
– Concede tutti i privilegi a un account utente.ALTER
– L'utente può modificare la struttura di una tabella o di un database.CREATE
– L'account utente può creare database e tabelle.DROP
– L'account utente può 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 può leggere un database.UPDATE
– L'account utente può aggiornare le righe della tabella.
Per fornire a un utente l'accesso al database MySQL e concedere le autorizzazioni, in genere è necessario utilizzare il seguente GRANT
dichiarazione:
GRANT permission_type ON privilege_level TO 'username'@'hostname';
Per concedere tutti i privilegi all'utente james
su jamesdb
database, utilizzare il seguente comando:
GRANT ALL PRIVILEGES ON jamesdb.* TO 'james'@'localhost';
Digita quanto segue per concedere solo SELECT
e INSERT
privilegi all'utente james
su jamesdb
banca dati:
GRANT SELECT, INSERT ON jamesdb.* TO 'james'@'localhost';
Grande SELECT
privilegi all'utente james
solo a salaries
tabella sui employees
banca dati:
GRANT SELECT ON employees.salaries TO 'james'@'localhost';
In alcuni casi potresti voler creare un altro "super utente". Concedere a un utente gli stessi privilegi dell'utente root di MySQL , utilizza il comando seguente, che concede privilegi globali all'utente james connessione tramite localhost :
GRANT ALL ON *.* TO 'james'@'localhost' WITH GRANT OPTION;
Modifica una password dell'account utente MySQL
Supponi di voler cambiare la password per james
utente 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.
Mostra Privilegi per un utente in MySQL
In MySQL, puoi usare SHOW GRANTS
comando per visualizzare tutte le informazioni sulla concessione per un utente. Facciamo alcuni esempi.
La seguente istruzione utilizza il SHOW GRANTS
istruzione per visualizzare i privilegi concessi per l'utente corrente:
SHOW GRANTS;
Per visualizzare le sovvenzioni per un utente MySQL, puoi utilizzare SHOW GRANTS
specificando il nome utente:
SHOW GRANTS FOR 'james'@'localhost';
Revocare i privilegi da un account utente MySQL
La sintassi per revocare uno o più privilegi da un account utente è quasi identica a quella per concedere i privilegi.
Se è necessario revocare i privilegi all'utente james
su un jamesdb
database, applica la sintassi che è simile a quella che hai utilizzato per la concessione delle autorizzazioni:
REVOKE ALL PRIVILEGES ON jamesdb.* FROM 'james'@'localhost';
Rimuovi utente da MySQL
Invece di revocare i privilegi, potresti voler rimuovere anche quell'utente. Quindi, puoi rimuovere un utente del database usando il seguente comando:
DROP USER 'james'@'localhost';
Il comando sopra rimuoverà l'utente james
insieme a tutti i suoi privilegi.
Salvataggio delle modifiche
Come passaggio finale, ogni volta che aggiorni o modifichi un'autorizzazione assicurati di utilizzare i FLUSH PRIVILEGES
comando.
FLUSH PRIVILEGES;
Conclusione
Dopo aver completato questo tutorial, dovresti avere un'idea di come aggiungere nuovi utenti e concedere loro una serie di autorizzazioni in un database MySQL.
Se hai domande o feedback, sentiti libero di lasciare un commento.