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 →

Связанные материалы