Permissões mínimas para um usuário executar um mysqldump?

26

Eu quero começar a agendar remotos mysqldump crons e prefiro usar uma conta especial para esse fim. Desejo conceder a esse usuário as permissões mínimas para obter um despejo completo, mas não tenho certeza da melhor maneira de fazer isso.

É tão simples quanto

grant SELECT on *.* to '$username'@'backuphost' identified by 'password'; 

ou estou perdendo um caminho melhor?

Matt Simmons
fonte

Respostas:

24

Eu acredito que o usuário só precisa selecionar permissões nas tabelas para fazer backup.

Edit: Esse cara diz para atribuir a permissão "bloquear tabelas" também, o que faz sentido.

Mike
fonte
Esta resposta ainda é válida em 2017?
Kyslik
11

Você também precisa de SHOW_VIEW, se houver visualizações no seu banco de dados.

Nathan Friend
fonte
5

Para quem está se perguntando, aqui está o comando exato:

GRANT SELECT, LOCK TABLES, SHOW VIEW ON *.* TO 'user'@'localhost' IDENTIFIED BY 'password';
wrangler
fonte
5

Parece que você precisa de RELOAD também. Tão:

GRANT SELECT, LOCK TABLES, SHOW VIEW, RELOAD ON *.* TO 'user'@'localhost' IDENTIFIED BY 'password';
Ventz Petkov
fonte
1

E você precisa de EVENT se quiser despejar EVENTOS também.

E você precisa do TRIGGER se quiser despejar os TRIGGERs também. (apesar do que o manual diz!)

Jannes
fonte