¿QUÉ ES EL VALIDATE PASSWORD COMPONENT EN MYSQL?
validate_password es un componente oficial de MySQL, a partir de MySQL 8.0 que sirve para mejorar la seguridad al obligar a que las contraseñas cumplan con una política de fortaleza definida por el administrador. Su función principal es rechazar contraseñas débiles cuando se crean o modifican usuarios con sentencias como:- "CREATE USER"
- "ALTER USER"
- "SET PASSWORD"
Niveles de Política (Policy)
El componente tiene 3 niveles de exigencia: Se puede cambiar el nivel con:SET GLOBAL validate_password.policy = 'STRONG';-- o MEDIUM / LOW
Variables de Configuración más importantes
| Variable | Descripción | Valor por defecto |
|---|---|---|
| validate_password.policy | Nivel de política | MEDIUM |
| validate_password.length | Longitud mínima | 8 |
| validate_password.mixed_case_count | Mínimo de mayúsculas y minúsculas | 1 |
| validate_password.number_count | Mínimo de números | 1 |
| validate_password.special_char_count | Mínimo de caracteres especiales | 1 |
| validate_password.dictionary_file | Ruta al archivo de diccionario (para STRONG) | (vacío) |
| validate_password.check_user_name | Rechazar contraseña igual al nombre de usuario | ON |
SHOW VARIABLES LIKE 'validate_password.%';
SELECT VALIDATE_PASSWORD_STRENGTH('miContraseña123!');
-- Devuelve un valor entre 0 (muy débil) y 100 (muy fuerte)
Ejemplo
-- Activar política fuerte
SET GLOBAL validate_password.policy = 'STRONG';
SET GLOBAL validate_password.length = 12;
-- Este comando fallará si la contraseña es débil:
CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'abc123';