Dump des privilèges MySQL

Testé sur Debian 5.0

Une petite fonction Bash bien pratique trouvée ici (un grand merci à l’auteur) qui permet d’afficher les privilèges utilisateurs d’un serveur MySQL. Très utile pour transférer les utilisateurs et leurs droits d’un serveur à l’autre.

Voici la fonction, à mettre dans son ~/.bash_aliases ou ~/.bashrc :

mygrants()
{
mysql -B -N $@ -e "SELECT DISTINCT CONCAT(
'SHOW GRANTS FOR ''', user, '''@''', host, ''';'
) AS query FROM mysql.user" | \
mysql $@ | \
sed 's/\(GRANT .*\)/\1;/;s/^\(Grants for .*\)/## \1 ##/;/##/{x;p;x;}'
}

On l’utilise ainsi, sur le serveur source :

mygrants --user=admin --password=secret > privileges.sql

Il est ensuite possible d’éditer le fichier privileges.sql pour enlever les utilisateurs qu’on ne veut pas transférer, par exemple debian-sys-maint sur les machines Debian.

Ensuite, sur le serveur destination :

cat privileges.sql | mysql --user=admin --password=secret
No votes yet.
Please wait...
Voting is currently disabled, data maintenance in progress.

Laisser une réponse