Segurança no MySQL na Prática. Proteção Avançada do Banco de Dados

Política de senhas, rotação de credenciais e proteção contra de força bruta.

A segurança do banco de dados começa antes mesmo da aplicação se conectar.

No MySQL, é possível implementar camadas robustas de proteção nativas, sem dependência de ferramentas externas e com baixo impacto operacional.

Vamos configurar três pilares essenciais de segurança, utilizando apenas recursos nativos do MySQL:

  • 🔑 Política forte de senhas
  • 🔄 Rotação periódica de credenciais
  • 🛡️ Proteção contra ataques de força bruta

Tudo passo a passo, com exemplos práticos para ambientes reais.


🎯 Cenário 

Ambiente

  • MySQL 8.0 ou superior
  • Acesso administrativo (DBA)

Objetivos

  • Impedir o uso de senhas fracas
  • Forçar rotação de senha a cada 30 dias
  • Permitir troca de senha sem downtime (opcional)
  • Reduzir riscos de ataques de brute force

🧱 Etapa 1 — Implementando Política Forte de Senhas

O MySQL oferece o plugin validate_password, responsável por validar a complexidade das senhas no momento da criação ou alteração de usuários.

Instalação do plugin

INSTALL COMPONENT 'file://component_validate_password';

Ajustes de utilização:

Configuração no arquivo my.cnf

A política pode ser aplicada diretamente no arquivo de configuração do MySQL, garantindo que nenhuma senha fraca seja aceita, mesmo após reinicializações.

Exemplos de controles aplicáveis:

  • Comprimento mínimo da senha

  • Uso obrigatório de letras maiúsculas e minúsculas

  • Inclusão de números

  • Inclusão de caracteres especiais


🔁 Etapa 2 — Rotação de Senhas (30 dias)

A rotação periódica de credenciais reduz drasticamente o impacto de vazamentos de senha.

ALTER USER 'example' PASSWORD EXPIRE INTERVAL 30 DAY;

Resultado

  • A senha expira automaticamente a cada 30 dias
  • O usuário é forçado a redefinir a senha no próximo login

🔄 Etapa 3 — Duas Senhas Temporárias (Opcional)

Para ambientes que exigem alta disponibilidade, o MySQL permite trabalhar com duas senhas simultâneas, evitando downtime durante a troca.

Bloqueio por errar a senha repetidas vezes conforme a regra de criação do usuario:

ALTER USER 'example' IDENTIFIED BY '[email protected]' RETAIN CURRENT PASSWORD;

Testando o dual password e descartando a senha antiga

ALTER USER 'example' DISCARD OLD PASSWORD;

Resultado: troca de senha segura, controlada e sem impacto operacional.


🛡️ Etapa 4 — Proteção contra Brute Force

O MySQL disponibiliza o plugin connection_control, que adiciona atrasos progressivos após tentativas de login malsucedidas.

INSTALL PLUGIN connection_control SONAME 'connection_control.so';

INSTALL PLUGIN connection_control_failed_login_attempts SONAME 'connection_control_failed_login_attempts.so';

Benefícios

  • Redução de ataques automatizados
  • Dificuldade para ataques de força bruta
  • Nenhum impacto perceptível para usuários legítimos

✅ Conclusão

Com poucos comandos e utilizando apenas recursos nativos, é possível elevar significativamente o nível de segurança do MySQL.

  • ✔️ Política forte de senhas
  • ✔️ Rotação automática de credenciais
  • ✔️ Troca de senha sem downtime
  • ✔️ Proteção contra ataques de forca bruta

Segurança eficiente não precisa ser complexa — precisa ser bem aplicada.


📚 Referências Oficiais

COMPARTILHE:
Picture of Marcio

Marcio

Minha paixão por tecnologia e minhas habilidades em resolução de problemas me permitem enfrentar desafios complexos e entregar soluções de banco de dados de alta qualidade. Estou sempre ávido por aprender e me manter atualizado com as últimas tendências em administração de banco de dados.
Picture of Marcio

Marcio

Minha paixão por tecnologia e minhas habilidades em resolução de problemas me permitem enfrentar desafios complexos e entregar soluções de banco de dados de alta qualidade. Estou sempre ávido por aprender e me manter atualizado com as últimas tendências em administração de banco de dados.

COMENTÁRIOS

PARTICIPE

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

POSTADO POR
Picture of Marcio

Marcio

Minha paixão por tecnologia e minhas habilidades em resolução de problemas me permitem enfrentar desafios complexos e entregar soluções de banco de dados de alta qualidade. Estou sempre ávido por aprender e me manter atualizado com as últimas tendências em administração de banco de dados.
PARCEIROS