Définition:
SHOW GRANTS FOR username
Exemple:
SHOW GRANTS FOR 'joe'@'office.example.com';
Définition:
GRANT { ALL | SELECT | INSERT | UPDATE | DELETE | ... }
ON { nom_table | nom_vue }
TO username
[ WITH GRANT OPTION ]
GRANT
permet d’accorder des privilèges (droits de lecture, d’écriture, etc) sur des tables ou des vues.
WITH GRANT OPTION
autorise un utilisateur à donner des permissions qu’il possède à d’autres utilisateurs.
Liste complètes des droits
Les droits supportés par MySQL peuvent également être listés via SHOW PRIVILEGES
Exemple:
GRANT ALL ON *.* TO 'finley'@'localhost' WITH GRANT OPTION;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON bankaccount.* TO 'custom'@'localhost';
GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
REVOKE { ALL | SELECT | INSERT | UPDATE | DELETE | ... }
ON { nom_table | nom_vue }
FROM username
Pour gérer des groupes d’utilisateur, on peut utiliser des proxy.
Par exemple, pour donner accès à la base de donnée app
à tous les utilisateurs qui utilisent le proxy manager
:
-- create proxy account
CREATE USER 'myuser'@'localhost'
IDENTIFIED WITH my_auth_plugin AS 'my_auth_string';
-- create proxied account and grant its privileges
CREATE USER 'manager'@'localhost'
IDENTIFIED BY 'password';
GRANT ALL ON app.*
TO 'manager'@'localhost';
-- grant PROXY privilege to proxy account for proxied account
GRANT PROXY
ON 'manager'@'localhost'
TO 'myuser'@'localhost';
REVOKE PROXY ON 'manager' FROM 'myuser';
NB USER()
retourne l’utilisateur authentifié. CURRENT_USER()
retourne l’utilisateur réel
SELECT USER(), CURRENT_USER();
+------------------+-------------------+
| USER() | CURRENT_USER() |
+------------------+-------------------+
| myuser@localhost | manager@localhost |
+------------------+-------------------+
Voir doc MySQL Proxy
Les permissions modifiées via les commandes de gestion de compte telles que GRANT
, REVOKE
, SET PASSWORD
, et RENAME USER
sont automatiquement détectées par le serveur et rafraichies en mémoire immédiatement.
En revanche, en cas de modification via INSERT
, UPDATE
ou DELETE
, les modifications ne seront pas prises en compte jusqu’au redémarrage du serveur ou rafraichissement des permissions:
FLUSH PRIVILEGES