DBAtlas · Atlas d'exploitation des bases de données

Politique de mots de passe, verrouillage après échecs de connexion et rotation de mot de passe sans interruption

MySQLSécurité

Commande

-- Password strength policy (component)
INSTALL COMPONENT 'file://component_validate_password';
SET PERSIST validate_password.policy = 'MEDIUM';
SET PERSIST validate_password.length = 12;
SELECT VALIDATE_PASSWORD_STRENGTH('Summer2024') AS score;

-- Failed-login lockout, password lifetime, history
ALTER USER 'ana'@'%' FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LOCK_TIME 1
  PASSWORD EXPIRE INTERVAL 90 DAY PASSWORD HISTORY 5 PASSWORD REUSE INTERVAL 365 DAY;

-- Zero-downtime rotation: dual password
ALTER USER 'svc_app'@'10.0.%' IDENTIFIED BY 'N3w#AppSecret2025' RETAIN CURRENT PASSWORD;
-- Once every application uses the new password
ALTER USER 'svc_app'@'10.0.%' DISCARD OLD PASSWORD;

Ce que fait la commande

Active une politique qui rejette les mots de passe faibles, verrouille temporairement les comptes après des échecs de connexion consécutifs, définit la durée de vie et les règles de réutilisation des mots de passe ; avec les mots de passe doubles, le mot de passe d'un compte de service est changé sans interruption pendant que les applications sont mises à jour une par une.

Quand l'utiliser

Pour les audits de sécurité / la conformité (PCI, ISO 27001) et la rotation des mots de passe des comptes de service.

Attention

La politique ne s'applique qu'aux mots de passe nouveaux / modifiés ; elle ne détecte pas les mots de passe faibles existants. Sur les comptes de service, FAILED_LOGIN_ATTEMPTS permet à un seul client mal configuré de verrouiller le compte et de provoquer une panne ; réservez-le aux comptes humains. PASSWORD_LOCK_TIME est en jours (UNBOUNDED : jusqu'au déverrouillage manuel) ; déverrouillez avec ALTER USER ... ACCOUNT UNLOCK. PASSWORD EXPIRE provoque des pannes inattendues sur les comptes de service ; préférez-y PASSWORD EXPIRE NEVER avec une rotation par mot de passe double.

Ouvrir dans DBAtlas →

Voir aussi