MySQL Server: Creare un utente in sola lettura


Spesso è utile disporre di un account MySql in sola lettura. Questo è utile soprattutto nel caso di sviluppo di script di backup.

Creazione dell’utente:

CREATE USER 'utente_sola_lettura'@'%' IDENTIFIED BY 'password';

dove utente_sola_lettura è il nome del nuovo utente, il simbolo % indica che l’accesso è consentito da qualsiasi host.

Adesso attribuiamo delle specifiche restrizioni:

GRANT SELECT ON NOME_DEL_DATABASE.* TO 'utente_sola_lettura'@'%';

Quindi proviamo se funziona:

mysql -u utente_sola_lettura -p
mysql> USE NOME_DEL_DATABASE;
mysql> UPDATE Tabella SET valore = 15 WHERE OID = 1;
ERROR 1142 (42000): UPDATE command denied TO USER 'utente_sola_lettura'@'localhost' FOR TABLE 'Tabella'