Droits minimums pour utiliser mysqldump

novembre 21, 2008

mysqldump est un client texte qui permet de faire une sauvegarde (dump) logique des données (au sens large) d’un serveur MySQL.
Pour pouvoir utiliser un client, il faut disposer d’un compte utilisateur (user, host et password), que le client utilisera pour se connecter au serveur MySQL.
Si vous devez faire régulièrement des sauvegardes, ce qui est (devrait être) la norme, une bonne pratique est d’avoir un utilisateur dédié pour cette tache, et par conséquent que cet utilisateur ait les droits qui vont bien. Toujours dans cet esprit bonnes pratiques, le but là est d’appliquer le principe du moindre privilège (droit). En d’autres termes, l’utilisateur doit avoir les droits pour faire ce qu’il doit faire (logique) mais surtout pas plus (finalement ça aussi c’est logique).

ne surtout pas avoir:

=> qui donne tout les droits sur toutes les bases de données à l’utilisateur user_dump@localhost

mais plutôt:

=> les droits SELECT et LOCK TABLES sur tout le serveur pour l’utilisateur user_dump@localhost

Le droit SELECT permet de lire les données à récupérer dans le fichier de dump.
Le droit LOCK TABLES permet la pose de verrous sur les tables, nécessaire au maintient de la cohérence.

et pis c’est tout !

Et donc pour faire une sauvegarde logique de toute la base de données (la commande minimale est) :

=>lance le client mysqldump avec l’utilisateur user_dump.

P.S. ??Pour utiliser la requête SELECT … INTO OUFILE il vous faudra le droit FILE.

P.S.2 dans la vraie vie, vous aurez besoins de renseigner plus de paramètres, et surtout de récupérer la sortie du dump car par défaut c’est… l’écran 😮 (cependant avec un bel écran monochrome vert, cela peut faire de beaux effets à la MATRIX) 🙂

P.S.3 Il est quand même possible de se passer du droit LOCK TABLES, il faut alors dire à mysqldump de ne pas mettre de verrous sur les tables

Leave a Reply