6.4 Un mot de passe sûr

Il n'est pas conseillé d'exposer son mot de passe, ou de le stocker dans des endroits qui faciliterait sa connaissances par d'autres utilisateurs. Les méthodes de spécifications du mot de passe lors du lancement du programme client sont présentées ci-dessous, avec à chaque fois, les risques de la méthode :

  • Utiliser la ligne de commande avec l'option -pyour_pass ou --password=your_pass. C'est très pratique, mais très dangereux, ca le mot de passe devient visible pour les commandes de statut du système (comme par exemple ps) qui peut être invoqué pas d'autres utilisateurs. Les clients MySQL remplace le mot de passe par une ligne de zéro lors de la séquence d'initialisation, mais il y a quand même un temps très bref, où la valeur est écrite en clair).
  • Utiliser la ligne de commande avec l'option -p ou --password (sans valeur spécifiée). Dans ce cas, le programme client va solliciter le mot de passe depuis la console :
shell> mysql -u user_name -p
Enter password: ********

Le client renvoie les caractères``*'' à la console, au fur et à mesure que vous entrez votre mot de passe, ce qui fait que quelqu'un derrière votre épaule ne pourra pas le voir. La sécurité est donc renforcée par rapport à la méthode précédente, mais cela oblige à utiliser le client en mode interactif. Vous ne pourrez pas lancer le programme depuis un script.

  • Enregistrez votre mot de passe dans un fichier de configuration. Par exemple, vous pouvez mettre votre mot de passe dans la section [client] du fichier de configuration ``.my.cnf'' de votre dossier home.
[client]
password=your_pass

Si vous stockez votre mot de passe dans le fichier ``.my.cnf'', ce fichier ne doit pas être accessible en lecture ou en écriture ni au groupe, ni au monde. Assurez vous que le mode d'accès du fichier est 400 ou 600. 4.15.4 Fichier d'options.

  • Vous pouvez enregistrer votre mot de passe dans la variable d'environnement MYSQL_PWD, mais cette méthode doit être considéré comme extrêmement dangereuse. Certaines options de ps permettent d'avoir accès aux variables d'environnement des processus en cours, ce qui fait que votre mot de passe peut être parfaitement lisible. Même sur des systèmes qui n'ont pas cette version de ps, il est fortement déconseillé de supposer qu'il n'y a pas d'autres méthode d'observation des processus.

L'un dans l'autre, la méthode la plus sûre est de fournir le mot de passe à la console, ou de spécifier le mot de passe dans le fichier ``.my.cnf'', correctement protégé.