Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como exportar e importar usuários existentes (com seus privilégios!)


Uma das maneiras mais fáceis que encontrei para exportar usuários é usando a ferramenta pt-show-grants da Percona. O kit de ferramentas Percona é gratuito, fácil de instalar e fácil de usar, com muita documentação. É uma maneira fácil de mostrar a todos os usuários ou usuários específicos. Ele lista todas as suas concessões e saídas no formato SQL. Vou dar um exemplo de como mostraria todas as concessões para test_user:
shell> pt-show-grants --only test_user

Exemplo de saída desse comando:
GRANT USAGE ON *.* TO 'test_user'@'%' IDENTIFIED BY PASSWORD '*06406C868B12689643D7E55E8EB2FE82B4A6F5F4';
GRANT ALTER, INSERT, LOCK TABLES, SELECT, UPDATE ON `test`.* TO 'test_user'@'%';

Eu costumo redigir a saída em um arquivo para que eu possa editar o que preciso ou carregá-lo no mysql.

Alternativamente, se você não quiser usar a ferramenta Percona e quiser fazer um dump de todos os usuários, você pode usar mysqldump desta forma:
shell> mysqldump mysql --tables user db > users.sql

Nota:--flush-privileges não funcionará com isso, pois o banco de dados inteiro não está sendo despejado. isso significa que você precisa executá-lo manualmente.
shell> mysql -e "FLUSH PRIVILEGES"