Outils pour utilisateurs

Outils du site


sme:smeserver-fr-mysql

Créer des utilisateurs MySQL

Avant toute chose, comme nous touchons ici à un élément sensible du système, je vais supposer que vous possédez certaines connaissances sur les Systèmes de Gestion de Bases de Données et leur administration. Si tel n'est pas le cas, je vous recommande de lire l'abondante documentation disponible dans ce domaine.

A l'installation de SME, trois “utilisateurs” MySQL sont créés : 1 horde (depuis le localhost) qui est utilisé pour le WebMail et 2 root (depuis le localhost et l'alias du serveur) qui supporte la lourde tâche de DBA (Administrateur Base de Données).

Attention, une erreur courante est de confondre les comptes utilisateur du système d'exploitation et du serveur MySQL. Or, ils sont totalement indépendants à tous points de vue.

Par défaut, le compte MySQL root dispose d'un mot de passe de 76 caractères aléatoires (visible dans /root/.my.cnf). Ce mot de passe et ce fichier ne doivent JAMAIS être modifiés !!! Comme ces 76 caractères sont impossibles à mémoriser, qu'il est assez pénible d'avoir à les copier/coller à chaque fois dans vos scripts, mais surtout parce qu'il est très dangereux d'utiliser un compte de DBA, l'idéal est de créer un ou plusieurs utilisateurs qui auront certains droits sur vos bases de données et/ou le SGBD.

Pour créer de nouveaux comptes MySQL, vous devez ouvrir une session root (l'administrateur SME) sur le serveur et lancer le client MySQL en tapant tout simplement :

mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 to server version: 4.1.12

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Attention, à partir de maintenant, vous êtes DBA MySQL et toute erreur de manipulation peut être critique !

Commençons par le cas de la création d'un DBA avec accès depuis votre réseau local. Ceci est fort utile si vous souhaitez administrer votre serveur MySQL à partir d'une autre machine de votre réseau (il existe de sympathiques interfaces graphiques qui simplifient la vie). Je supposerais ici que l'adresse de votre réseau est 192.168.10.0/255.255.255.0 ; vous pouvez même spécifier une adresse IP en particulier, pour plus de sécurité (dans ce cas, le masque serait 255.255.255.255) :

mysql> GRANT ALL PRIVILEGES ON *.* TO 'nouveau_dba'@'192.168.10.0/255.255.255.0' IDENTIFIED BY 'mot_de_passe' WITH GRANT OPTION; Query OK, 0 rows affected (0.01 sec)

Nota : l'option “WITH GRANT OPTION” n'est pas indispensable et doit être évitée à chaque fois que c'est possible. Elle n'est présentée ici que pour être conforme aux droits que doit avoir un DBA (voir la documentation s'y rapportant pour plus d'informations).

Autre cas, création d'un utilisateur standard avec accès local sur une base de données existante (très utile pour les scripts PHP, notamment) :

mysql> GRANT SELECT, UPDATE, INSERT, DELETE ON base_de_données.* TO 'nouvel_utilisateur'@'localhost' IDENTIFIED BY 'mot_de_passe'; Query OK, 0 rows affected (0.01 sec)

Nota : ne modifiez pas le paramètre 'localhost'.

Il existe bien entendu de multiples variations et combinaisons, mais les deux cas que je viens de vous présenter correspond à l'immense majorité des besoins des utilisateurs sur SME.

Après la création de nouveaux utilisateurs, vous devez indiquer à MySQL de les prendre en compte et, ensuite, quitter le client :

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> QUIT;
Bye

Reset MySQL Root Password on SME Server

Dans le cas de

[root@***** root]# mysql
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)

<code> /etc/rc.d/init.d/mysqld stop /etc/e-smith/events/actions/conf-mysql-password /etc/rc.d/init.d/mysqld start <code> Le mot de passe est dans /root/.my.cnf

sme/smeserver-fr-mysql.txt · Dernière modification : 2024/02/09 17:10 de 127.0.0.1