DBAtlas · 数据库运维图谱

密码策略、登录失败锁定与零停机密码轮换

MySQL安全

命令

-- 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;

作用

启用拒绝弱密码的策略,在连续登录失败后临时锁定账户,设置密码有效期和重用规则;借助双密码,可在逐个更新应用的同时无停机地更换服务账户密码。

适用场景

用于安全审计/合规(PCI、ISO 27001)和服务账户密码轮换。

注意

策略只作用于新设置/修改的密码;不会检测已有的弱密码。在服务账户上,FAILED_LOGIN_ATTEMPTS 可能让单个配置错误的客户端锁定账户并造成故障;请用于人工账户。PASSWORD_LOCK_TIME 单位为天(UNBOUNDED:直到手动解锁);使用 ALTER USER ... ACCOUNT UNLOCK 解锁。PASSWORD EXPIRE 会在服务账户上造成意外故障;那里优先使用 PASSWORD EXPIRE NEVER 加双密码轮换。

在 DBAtlas 中打开 →

相关内容