Usuário específico para backup no MySQL (MariaDB)

Muitas vezes precisamos escrever scripts de backup para o MySQL (ou o MariaDB) que armazenam a senha de acesso ao banco de dados. Obviamente se seu servidor for comprometido e o hacker tiver acesso ao script de backup, ele pegará a senha do banco de dados de presente.

Um jeito mais seguro de usar scripts com senhas de usuários para backup é criar um usuário específico para backup, com dois privilégios: SELECT e de LOCK TABLES. Um hacker que conseguisse essa senha específica do usuário de backup ainda conseguiria fazer algum estrago (dar um lock me alguma tabela), mas não conseguiria apagar um banco de dados ou alterar os dados.

Para aumentar um pouco a segurança de seus scripts de backup, crie o usuário específico, dê os grants e use esse usuário/senha em seus scripts. Entre no MySQL (ou MariaDB) como usuário root e faça o seguinte (substitua os nomes em itálico sublinhado de acordo com seu sistema):

CREATE USER usuario@localhost
IDENTIFIED BY 'senha';

GRANT SELECT, LOCK TABLES
ON nome_do_banco_de_dados.*
TO usuario;

FLUSH PRIVILEGES;

Agora você tem um usuário que só pode dar SELECT e LOCK TABLES, e apenas para o banco de dados que você especificou.

Use esse usuário/senha menos privilegiado em seus scripts de backup.

Leave a Reply