par Grand-Pa » 17 Juil 2002 22:29
Tiré de la future version de la FAQ alt.e-smith*.fr :
<BR><!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-2>En réponse à:</font><HR></TD></TR><TR><TD><FONT SIZE=-2><BLOCKQUOTE>
<BR>4.4 - Accéder à MySQL.
<BR>----------------------
<BR>Je suppose dans ce chapitre que vous possédez certaines connaissances
<BR>dans les _vrais_ Systèmes de Gestion de Bases de Données et dans leur
<BR>administration (si vous ne connaissez que Microsoft Access, vous n'êtes
<BR>pas dans cette catégorie)... Si tel n'est pas le cas, je vous recommande
<BR>de lire l'abondante documentation disponible dans ce domaine.
<BR>Je m'inspire, pour la suite, du Howto (en anglais) de Dan Brown :
<BR> <!-- BBCode auto-link start --><a href="http://www.familybrown.org/howtos/mysql-password-howto.html" target="_blank">http://www.familybrown.org/howtos/mysql-password-howto.html</a><!-- BBCode auto-link end -->
<BR>
<BR>A l'installation de SME, quatre "utilisateurs" MySQL sont créés : 2
<BR>horde (en localhost et en everywhere) qui est utilisé pour le webmail et
<BR>2 root (en localhost et en alias du serveur) qui supporte la lourde tâche
<BR>de DBA (Administrateur Base de Données). C'est donc le compte root que
<BR>nous allons étudier.
<BR>Par défaut, il dispose d'un mot de passe de 76 caractères aléatoires
<BR>(visible dans /root/.my.cnf). Ce mot de passe et ce fichier ne doivent
<BR>JAMAIS être modifiés !!! Comme ces 76 caractères sont impossibles à
<BR>mémoriser et qu'il est assez pénible d'avoir à les copier/coller à chaque
<BR>fois dans vos scripts, l'idéal est de créer un ou plusieurs utilisateurs
<BR>qui auront (plus ou moins) les mêmes droits que le DBA root.
<BR>Dans tous les cas, vous devez ouvrir une session root (l'administrateur
<BR>SME) sur le serveur et lancer le client mysql en tapant tout simplement
<BR>"mysql" (sans les guillemets) à l'invite de commande. Attention, à partir
<BR>de maintenant, vous êtes DBA MySQL et toute erreur de manipulation peut
<BR>être critique !
<BR>Dans le suite, les paramètres en minuscule, les adresses IP et les
<BR>masques de sous-réseau sont à modifier en fonction de vos besoins et
<BR>toutes les commandes sont présentées sur trois lignes, vous devrez donc
<BR>recoller les morceaux pour les utiliser. Voici maintenant comment créer
<BR>des utilisateurs MySQL avec différents droits :
<BR>*) Création d'un DBA avec accès depuis une classe d'adresse IP ou une
<BR> adresse IP en particulier (avec un masque en 255.255.255.255) :
<BR> mysql> GRANT ALL PRIVILEGES ON *.*
<BR> TO 'nouveau_dba'@'123.123.123.0/255.255.255.0'
<BR> IDENTIFIED BY 'mot_de_passe' WITH GRANT OPTION;
<BR> Nota : l'option "WITH GRANT OPTION" n'est pas indispensable et doit
<BR> être évitée à chaque fois que c'est possible. Elle n'est présentée ici
<BR> que pour être conforme aux droits que doit avoir un DBA (voir la
<BR> documentation s'y rapportant pour plus d'informations).
<BR>
<BR>*) Création d'un DBA avec accès depuis le réseau local (c'est le cas le
<BR> plus intéressant pour l'administration du serveur MySQL) :
<BR> mysql> GRANT ALL PRIVILEGES ON *.*
<BR> TO 'nouveau_dba'@'pc-%'
<BR> IDENTIFIED BY 'mot_de_passe' WITH GRANT OPTION;
<BR> Nota : ne pas modifier le paramètre 'pc-%'.
<BR>
<BR>*) Création d'un utilisateur standard avec accès local sur une base de
<BR> données en particulier (très utile pour les scripts PHP, notament) :
<BR> mysql> GRANT SELECT, UPDATE, INSERT, DELETE ON base_de_données.*
<BR> TO 'nouvel_utilisateur'@'localhost'
<BR> IDENTIFIED BY 'mot_de_passe';
<BR> Nota : ne pas modifier le paramètre 'localhost'.
<BR>
<BR>Après cette création, vous devez indiquer à MySQL de prendre en compte
<BR>ces nouveaux utilisateurs et quitter le client :
<BR> mysql> FLUSH PRIVILEGES;
<BR> mysql> QUIT;</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End -->
Et hop, finis les galons !