4.3 Gestion des comptes utilisateurs de MySQL
4 Administration du serveur
Manuel de Référence MySQL 4.1 : Version Française
. Syntaxe de GRANT et REVOKE . Nom d'utilisateurs MySQL et mots de passe . Quand les modifications de privilèges prennent-ils effets ? . Création des premiers droits MySQL . Ajouter de nouveaux utilisateurs à MySQL . Limiter les ressources utilisateurs . Configurer les mots de passe ->Garder vos mots de passe en lieu sûr . Utilisation des connexions sécurisées
|
4.3.8 Garder vos mots de passe en lieu sûr Il est recommandé de ne pas placer votre mot de passe là où il risque d'être
découvert par d'autres personnes. Les méthode que vous utiliserez pour spécifier
votre mot de passe lors de la connexion avec le client sont listées ici,
avec les risques liés à chaque méthode :
-
Ne donnez jamais l'accès à un utilisateur normal, à la table
mysql.user
.
En connaissant le mot de passe chiffré d'un utilisateur lui permettrait
de se connecter sous cet utilisateur. Les mots de passe sont chiffrés
pour que personne ne puisse lire le mot de passe en clair (ce qui
arriverait si vous utilisiez le même mot de passe dans une autre application).
-
Utilisez l'option
-pyour_pass
ou
--password=your_pass
en ligne de
commande. C'est très pratique mais très peu sûr, car votre mot de passe devient
visible aux programmes qui effectuent des bilans de l'état du serveur, comme
la commande
ps
, qui peut être invoquée par d'autres utilisateurs
pour lister les commandes qui sont exécutées : les clients MySQL remplacent la valeur
de cet argument par une série de zéro durant l'initialisation, mais il reste
tout de même une courte période où ce mot de passe est lisible en clair.
-
Utilisez l'option
-p
ou
--password
(sans la valeur du
mot de passe
).
Dans ce cas, le programme client va solliciter la saisie du mot de passe
depuis le terminal :
shell> mysql -u user_name -p Enter password: ********
|
Les caractères
'*'
représentent votre mot de passe.
Cette méthode est bien plus sûre pour saisir votre mot de passe qu'en le spécifiant
directement en ligne de commande, car il n'est pas visible des autres utilisateurs.
Cependant, cette méthode n'est possible qu'avec les programmes que vous
utilisez en mode interactif. Si vous voulez invoquer le client depuis un
script qui s'exécute de manière non interactive, il n'y aura pas d'opportunité
pour saisir ce mot de passe dans le terminal. Sur certains systèmes, vous pourriez
même voir la première ligne de votre script lue et interprétée comme votre
mot de passe, incorrectement.
-
Stockez votre mot de passe dans le fichier de configuration. Par exemple,
vous pouvez lister votre mot de passe dans la section
[client]
du fichier
.my.cnf
dans votre dossier personnel :
[client] password=mot_de_passe
|
Si vous stockez ce mot de passe dans le fichier
.my.cnf
, le fichier
ne doit pas être lisible par le groupe ou par les autres utilisateurs, ou encore
accessible en écriture : seul le propriétaire de ce fichier doit avoir ces droits.
Assurez-vous les droits d'accès au fichiers sont
400
ou
600
. Fichier d'options
my.cnf
.
-
Vous pouvez stocker votre mot de passe dans la variable d'environnement
MYSQL_PWD
, mais cette méthode doit être considérée comme extrêmement
peu sûre, et doit être évitée autant que possible. Certaines versions de la commande
en ligne
ps
incluent une option pour afficher les variables d'environnement
des processus : votre mot de passe sera alors facilement accessible, et en texte
clair, si vous configurez la commande
MYSQL_PWD
. Même sur les systèmes
sans une telle version de la commande
ps
, il est peu recommandé de supposer
que les variables d'environnement sont inaccessibles par une méthode quelconque.
Variables d'environnement MySQL .
En conclusion, la méthode la plus sûre est encore de laisser le client vous
demander le mot de passe, ou de le spécifier dans le fichier de configuration
.my.cnf
.
|