MYSQL - Attribution de droits utilisateurs MySQL : Différence entre versions
(Nouvelle page : = Introduction = Cet article a pour but de donner une méthode simple d'attribution de droits d'accès à MySQL pour un utilisateur lambda. L'exemple ci-dessous s'applique à tous ...) |
|||
Ligne 57 : | Ligne 57 : | ||
[http://dev.mysql.com/doc/refman/5.0/fr/index.html La documentation officielle de MySQL 5] | [http://dev.mysql.com/doc/refman/5.0/fr/index.html La documentation officielle de MySQL 5] | ||
+ | |||
+ | [http://dev.mysql.com/doc/refman/5.0/fr/privileges-provided.html Les droits disponibles sous MySQL] | ||
+ | |||
+ | [http://dev.mysql.com/doc/refman/5.0/fr/adding-users.html Création d'un utilisateur MySQL] | ||
+ | |||
+ | [http://www.tayo.fr/creer-un-utilisateur-mysql-tutoriel.php HOWTO Création d'un utilisateur MySQL] | ||
[[Category:Howto]] | [[Category:Howto]] | ||
[[Category:Mysql]] | [[Category:Mysql]] | ||
[[Category:Linux]] | [[Category:Linux]] |
Version du 10 septembre 2008 à 08:13
Introduction
Cet article a pour but de donner une méthode simple d'attribution de droits d'accès à MySQL pour un utilisateur lambda.
L'exemple ci-dessous s'applique à tous les cas de figure nécessitant la création d'utilisateurs MySQL et l'attribution de droits d'accès au serveur de base de données.
Dans l'exemple ci dessous, l'utilisateur est toto, le mot de passe toto et les droits sont très larges (mêmes droits que le superutilisateur).
Méthode
Se connecter au SGBD avec un compte superutilisateur: root@ubuntu:~# mysql -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 5.0.45-Debian_1ubuntu3-log Debian etch distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. Sélectionner la base mysql pour modification: mysql> use mysql ; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed A partir de là, 2 méthodes
Méthode rapide
La méthode sauvage en recopiant les champs de l'enregistrement correspondant au superutilisateur: On autorise les accès de l'utilisateur toto depuis la passerelle: mysql> INSERT INTO `user` VALUES ('192.168.145.1','toto',PASSWORD('toto'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',,,,,0,0,0,0); On autorise les accès depuis l'adresse IP de localhost: mysql> INSERT INTO `user` VALUES ('127.0.0.1','toto',PASSWORD('toto'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',,,,,0,0,0,0); On autorise les accès depuis localhost: mysql> INSERT INTO `user` VALUES ('localhost','toto',PASSWORD('toto'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',,,,,0,0,0,0); On autorise les accès depuis le nom du serveur: mysql> INSERT INTO `user` VALUES ('ubuntu','toto',PASSWORD('toto'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',,,,,0,0,0,0); On applique les modifications faite dans la table user au SGBD et à son mécanisme d'authentification: mysql> flush privileges ;
Méthode propre
Une méthode plus propre est d'utiliser la commande SQL GRANT permettant d'attribuer des droits à un utilisateur sur des tables, des bases, etc.
L'idée est de donner des droits à un utilisateur, ce qui a pour effet de créer l'utilisateur s'il n'existe pas, et de complèter son jeu de droits par la suite.
mysql> GRANT all on base.table to user@host identified by 'password'; mysql> GRANT <droits> on base.table to user@host identified by 'password';
NB: Dans ce cas de figure, le mot de passe est à entrer en clair, sans traduction par la commande PASSWORD.
NB: Il n'est pas obligatoire de donner directement un mot de passe dans la commande GRANT, cela peut se faire par la commande SET PASSWORD
NB: Il est à noter qu'il est possible d'attribuer des mots de passe différents pour un même utilisateur en fonction de l'hôte depuis lequel il accède au SGBD.
Liens utiles
La documentation officielle de MySQL 5
Les droits disponibles sous MySQL