Muitas vezes precisamos escrever scripts de backup para o MySQL (ou o MariaDB) que armazenam a senha de acesso ao banco de dados. Obviamente é uma péssima idéia deixar a senha de algum usuário com privilégios de leitura e gravação em seus bancos de dados disponível em algum script: se esse script for comprometido toda a integridade de seus bancos de dados está em sério risco.

Um jeito mais seguro de usar scripts com senhas de usuários para backup é criar um usuário específico para backup, com apenas 2 privilégios: SELECT e LOCK TABLES. Um alguém conseguir acessar seu script de backup só vai ver a senha desse usuário pouco privilegiado, que não é capaz de fazer nenhuma alteração em seus bancos de dados (ele ainda conseguiria causar alguma chateação, como dar um lock em alguma tabela, mas não conseguiria apagar um banco de dados ou alterar os dados).

Para aumentar a segurança de seus scripts de backup, crie o usuário específico, dê os grants para os bancos de dados que você deseja, 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 no banco de dados que você especificou. Se quiser que esse mesmo usuário faça o backup de vários bancos de dados, é só dar os mesmos privilégios para os outros bancos.

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

Classificado como: