Revocare un privilegio in MariaDB-MySQL

08 settembre 2015

​Supponiamo di aver in precedenza creato un utente denominato myuser che accede da localhost al database mydb .
Visualizziamone i privilegi con il comando:
MariaDB > SHOW GRANTS FOR myuser@localhost;
+----------------------------------------------------------------------------------------+
| Grants for myuser@localhost                                                            |
+----------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'myuser'@'localhost' IDENTIFIED BY PASSWORD '*XXXXXXXXXXXXXXXYY' |
| GRANT SELECT, INSERT, UPDATE, DELETE ON `mydb`.* TO 'myuser'@'localhost'               |
+----------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
​L'utente myuser ha i privilegi di SELECT, INSERT, UPDATE, DELETE su tutte le tabelle (*) del database mydb.
Eliminiamo ora il privilegio DELETE in precedenza assegnato a myuser:
MariaDB > REVOKE DELETE ON mydb.* FROM myuser@localhost;  
Query OK, 0 rows affected (0.00 sec)
Verifichiamo:
MariaDB > SHOW GRANTS FOR myuser@localhost;
+----------------------------------------------------------------------------------------+
| Grants for myuser@localhost                                                            |
+----------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'myuser'@'localhost' IDENTIFIED BY PASSWORD '*XXXXXXXXXXXXXXXYY' |
| GRANT SELECT, INSERT, UPDATE ON `mydb`.* TO 'myuser'@'localhost'                       |
+----------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
Se avessimo voluto eliminare sia il privilegio DELETE che UPDATE sarebbe bastato elencarli separati da virgola:
MariaDB > REVOKE DELETE, UPDATE ON mydb.* FROM myuser@localhost;  
Query OK, 0 rows affected (0.00 sec)