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.

















COMENTÁRIOS
Perfeito, obrigado por compartilhar