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
VN:F [1.9.22_1171]
Rating: 4.0/5 (1 vote cast)
Dump des privilèges MySQL, 4.0 out of 5 based on 1 rating

Laisser une réponse