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.