Grant-Revoke
Gestion des privilèges MySQL
Instruction GRANT
La commande GRANT permet de créer des utilisateurs avec privilèges.
Syntaxe de l'instruction GRANTGRANT privilège ON matable TO username [IDENTIFIED BY `password`]
[WITH GRANT OPTION]
Le mot clé privilège est soit une liste de privilèges séparés par des virgules, soit le mot clé USAGE qui permet de créer un utilisateur sans lui attribuer de privilèges.
mysql> GRANT create, select, show databases ON *.* TO titi@localhost IDENTIFIED BY 'pass123';
La close optionnelle WITH GRANT OPTION accorde le droit à l'utilisateur de donner ses propres privilèges à d'autres utilisateurs.
mysql> GRANT all ON *.* TO tutu@easy-micro.org IDENTIFIED BY 'pass123';
mysql> SHOW GRANTS FOR root@localhost;
Les caractères *.* peut remplacer le mot clé matable. Par exemple, mabase.* représente toutes les tables de mabase.
Deux exemples de création d'un utilisateur (titi et toto)mysql> GRANT USAGE ON mabase.* TO titi@localhost IDENTIFIED BY 'pass123';
mysql> GRANT USAGE ON *.* TO toto@"%.easy-micro.com" IDENTIFIED BY 'monpass';
mysql> GRANT select, insert, update ON *.* TO titi@localhost;
Instruction REVOKE
La commande REVOKE permet de révoquer - supprimer - des privilèges
Syntaxe de l'instruction REVOKEREVOKE privilège ON matable FROM username
Le mot clé privilège est soit une liste de privilèges séparés par des virgules, soit le mot clé all qui permet de supprimer tous les privilèges d'un utilisateur.
Exemple pour retirer les privilèges d'insertion et mise à jour:mysql> REVOKE insert, update ON *.* TO tutu@easy-micro.org;
mysql> REVOKE all ON *.* FROM tutu@easy-micro.org;
Modification du mot de passe d'un utilisateur
Chaque utilisateur (sauf l'utilisateur anonyme) peut modifier son mot de passe et, s'il en a le privilège, il peut modifier les mots de passe des autres utilisateurs.
mysql> SET PASSWORD FOR titi@localhost=PASSWORD('newpassword');
mysql> SET PASSWORD FOR root@localhost=PASSWORD('secret');
mysql> SET PASSWORD FOR titi@easy-micro.org=PASSWORD('newpassword');
mysql> UPDATE user SET password=PASSWORD('newpassword') where user='tutu' AND host=localhost;
Note: Pour supprimer un utilisateur, on utilise l'instruction sql :
DELETE FROM user WHERE user='titi';