Mysql
 sql >> Database >  >> RDS >> Mysql

Permessi utente MySQL

Vediamo come concedere permessi (detti privilegi) a un utente del database MySQL

Per impostazione predefinita, quando crei un nuovo utente MySQL utilizzando la sintassi

CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';

l'utente non può fare molto. Possiamo dire che non può a nulla, in realtà.

Non può leggere i dati da nessun database esistente, per non parlare della modifica dei dati. E non può nemmeno creare un nuovo database.

Per fare in modo che un utente faccia qualsiasi cosa, devi concedere i privilegi ad esso.

Puoi farlo usando il GRANT comando.

Possiamo usare GRANT <permission> , utilizzando le seguenti parole chiave di autorizzazione:

  • CREATE
  • DROP
  • DELETE
  • INSERT
  • SELECT
  • UPDATE
  • ALL PRIVILEGES

Concedi il privilegio per creare nuovi database a un utente

GRANT CREATE ON *.* TO '<username>'@'localhost';

Concedi i privilegi a un utente per creare nuove tabelle in un database specifico

GRANT CREATE ON <database>.* TO '<username>'@'localhost';

Concedi il privilegio di leggere (interrogare) un database specifico a un utente

GRANT SELECT ON <database>.* TO '<username>'@'localhost';

Concedi il privilegio per leggere un database specifico table a un utente

GRANT SELECT ON <database>.<table> TO '<username>'@'localhost';

Concedi il privilegio di inserire, aggiornare ed eliminare righe in un database specifico per un utente

GRANT INSERT, UPDATE, DELETE ON <database>.* TO '<username>'@'localhost';

Concedi a un utente il privilegio di eliminare le tabelle in un database specifico

GRANT DROP ON <database>.* TO '<username>'@'localhost';

Concedi il privilegio di eliminare i database a un utente

GRANT DROP ON *.* TO '<username>'@'localhost';

Concedi tutti i privilegi su un database specifico a un utente

GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'localhost';

Concedi tutti i privilegi a un utente

GRANT ALL PRIVILEGES ON *.* TO '<username>'@'localhost';

Revocare un privilegio

Esempio per revocare il DROP privilegio su <database> :

REVOKE DROP ON <database>.* TO '<username>'@'localhost';

Per revocare tutti i privilegi, esegui:

REVOKE ALL PRIVILEGES ON *.* TO '<username>'@'localhost';

Puoi visualizzare i privilegi di un singolo utente eseguendo:

SHOW GRANTS FOR '<username>'@'localhost';