La commande GRANT permet de créer des utilisateurs avec privilèges. La commande REVOKE permet de révoquer - supprimer - des privilèges. ![]() GRANT privilege ON matable TO username [IDENTIFIED BY `password`] [WITH GRANT OPTION] Le mot clé "privilege" 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'; mysql> GRANT all ON *.* TO tutu@easy-micro.org IDENTIFIED BY 'pass123'; Attention: sans mot de passe (et l'instruction IDENTIFIED BY), création pas accepté! Afficher les privilèges de l'utilisateur ROOT (Attention: GRANTS avec un s): 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. La close optionnelle WITH GRANT OPTION accorde le droit à l'utilisateur de donner ses propres privilèges à d'autres utilisateurs. 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'; Attention: sans mot de passe, création pas accepté! L'utilisateur toto peut ici se connecter depuis toutes les machines du domaine easy-micro.org (remarquons les doubles quottes utilisées pour que MySQL accepte le symbole %. ![]() mysql> REVOKE insert, update ON *.* FROM tutu@easy-micro.org; Exemple de supression de tous les privilèges d'un utilisateur mysql> REVOKE all ON *.* FROM tutu@easy-micro.org; Trois exemples de requête de modification du mot de passe d'un utilisateur mysql> SET PASSWORD FOR titi@easy-micro.org=PASSWORD('newpassword'); mysql> SET PASSWORD FOR root@localhost=PASSWORD('newpassword'); mysql> UPDATE user SET password=PASSWORD('newpassword') where user='tutu' AND host=localhost; Exemple pour donner les privilèges de sélection, d'insertion et maj sur toutes bases: mysql> GRANT select, insert, update ON *.* TO titi@localhost; Exemple pour retirer les privilèges d'insertion et mise à jour: mysql> REVOKE insert, update ON *.* TO titi@localhost; ![]() 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 stocke les mots de passe sous forme cryptée afin qu'ils ne soient pas lisibles (pas possible de décrypter). mysql> SET PASSWORD FOR titi@localhost=PASSWORD('newpassword'); Note la fonction PASSWORD() permet d'encrypter le mot de passe. Exemple pour créer un mot de passe de root mysql> SET PASSWORD FOR root@localhost=PASSWORD('secret'); Pour supprimer un utilisateur, on utilise l'instruction sql : DELETE FROM user WHERE user='titi'; |