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.