Este artículo de la comunidad técnica, " Nuevas características | Detalles complementarios de la nueva política de contraseñas de MySQL 8.0 ", explica algunos escenarios detallados de la nueva política de contraseñas de la base de datos MySQL 8.0, de los cuales vale la pena aprender.
MySQL 8.0 se ha lanzado hasta ahora a la versión 8.0.34. Después de una serie de actualizaciones de versión, se han realizado más mejoras en las contraseñas.
Este artículo realiza principalmente una verificación y análisis de los detalles de uso de varios parámetros relacionados con las contraseñas y comparte con usted la experiencia de uso real. Primero, echemos un vistazo a algunas de las estructuras de sintaxis en la sintaxis de la versión MySQL 8.0 CREATE USER
. password_option
-- MySQL 8.0(新增了不同维度的密码控制)
password_option: {
PASSWORD EXPIRE [DEFAULT | NEVER | INTERVAL N DAY]
| PASSWORD HISTORY {DEFAULT | N}
| PASSWORD REUSE INTERVAL {DEFAULT | N DAY}
| PASSWORD REQUIRE CURRENT [DEFAULT | OPTIONAL]
| FAILED_LOGIN_ATTEMPTS N
| PASSWORD_LOCK_TIME {N | UNBOUNDED}
}
-- MySQL 5.7(只包含密码过期属性配置)
password_option: {
PASSWORD EXPIRE
| PASSWORD EXPIRE DEFAULT
| PASSWORD EXPIRE NEVER
| PASSWORD EXPIRE INTERVAL N DAY
}
CREATE USER
Entre ellos , los primeros cuatro atributos de contraseña de la sintaxis de la versión MySQL 8.0 son los primeros detalles discutidos en este artículo. Los parámetros globales de MySQL y el significado correspondiente a sus atributos son:
nombre del parámetro | valor por defecto | Campos correspondientes de la tabla mysql.user | significado |
---|---|---|---|
default_password_lifetime | 0 | contraseña_vida útil | Período de validez de contraseña establecido globalmente |
historial_contraseña | 0 | historial_reutilización_contraseña | Establezca globalmente la cantidad de contraseñas históricas que no se pueden reutilizar. |
intervalo_reutilización_contraseña | 0 | tiempo_reutilización_contraseña | Establecer globalmente cuánto tiempo lleva reutilizar las contraseñas históricas |
contraseña_require_current | APAGADO | contraseña_require_current | ¿Necesita proporcionar la contraseña actual al cambiar la contraseña en la configuración global? |
Mito 1
mysql.user
El significado cuando el campo correspondiente de las opciones relacionadas con la contraseña en la tabla es NULL.
Proceso de verificación
Establecemos valores específicos en función de estos cuatro atributos de contraseña. Después de configurarlos, la configuración se muestra en la siguiente figura.
Cree un nuevo usuario sin especificar ningún atributo de contraseña de usuario.
Una vez creado el usuario, mysql.user
los valores que se muestran en los campos correspondientes en la tabla de vista son todos NULL.
¿Las cuatro propiedades configuradas globalmente no surten efecto?
Si tiene efecto, se debería configurar automáticamente con el valor correspondiente al crear un usuario. La comprensión basada en esta lógica también conduce a otra capa de malentendidos: el atributo global de contraseña recién configurado no tiene efecto para los usuarios creados históricamente.
ALTER USER
¿Aún necesitamos procesar a los usuarios existentes por separado?
Cuanto más pienso en esta pregunta, más errónea se vuelve. Si la configuración global no surte efecto cuando se crea un nuevo usuario, ¿cuándo entrará en vigor? ¿No tendría sentido? Obtuve la respuesta después de verificar más a fondo la descripción del significado de los valores de campo correspondientes en el documento oficial [1] . mysql.user
La descripción original es la siguiente, traducida como: Si estos cuatro valores son NULL en la tabla, no significa que la configuración no haya surtido efecto, pero significa que hereda la configuración de la política de contraseñas global.
Por lo tanto , no leí los documentos oficiales con suficiente atención y entendí mal el significado del valor NULL ( la razón clave ), pero de hecho es fácil pisar este "pozo". Aquí también se publica la tabla de correspondencia efectiva de parámetros globales y configuración de atributos de usuario único como referencia.
Mito 2
Aunque aquí se describe como un malentendido, en realidad debe entenderse que la descripción del documento es imperfecta. Primero echemos un vistazo a la descripción del documento, la traducción es: Puede usar estos dos parámetros para controlar la política de reutilización de contraseñas históricas: uno se basa en la política de número de veces y el otro se basa en la política de tiempo. . Se puede configurar al mismo tiempo, por ejemplo: prohibir el uso de las últimas 6 contraseñas o contraseñas establecidas dentro de los 365 días, puede ver que los dos parámetros son una lógica O.
Escenario de verificación real
escena 1
historial_contraseña > 0 y intervalo_reutilización_contraseña = 0
Conclusión: La política de control del recuento histórico de contraseñas es eficaz y está en línea con las expectativas.
Escena 2
historial_contraseña = 0 y intervalo_reutilización_contraseña > 0
Conclusión: La política de control del tiempo de contraseña histórica es efectiva y está en línea con las expectativas.
Escena 3
historial_contraseña > 0 y intervalo_reutilización_contraseña > 0
Conclusión: la política de control de tiempo de contraseña histórica entra en vigor, pero la política de control de tiempo de contraseña histórica no surte efecto. mysql.password_history registrará todas las contraseñas dentro del tiempo especificado y no se podrá reutilizar.
Por lo tanto ,
password_reuse_interval
La estrategia de control de tiempo tiene mayor prioridad quepassword_history
el control de tiempos.Los dos no tienen efecto al mismo tiempo. Cuando se configuran dos parámetros al mismo tiempo, la configuración más estricta se utilizará como política efectiva.
Básicamente, las políticas no tienen ningún impacto en el uso y la funcionalidad.
Referencias
[1]
tablas de concesión: https://dev.mysql.com/doc/refman/8.0/en/grant-tables.html
Si cree que este artículo es útil, no dude en hacer clic en "Me gusta" y "Leer" al final del artículo, o reenviarlo directamente a pyq.
Artículos actualizados recientemente:
" Solución de problemas y rutas de solución para varios escenarios de fuga de datos "
" Algunos problemas encontrados recientemente "
" Conocimiento financiero - Trading cuantitativo "
“ Clasificación e Indexación de 1.300 Artículos de Cuentas Públicas ”
" Estadísticas de 1.300 artículos sobre cuentas públicas "
Artículos candentes recientes:
" Recomiende un artículo clásico sobre Oracle RAC Cache Fusion "
" El impacto que nos trae el código fuente abierto del juego "Red Alert" "
Clasificación e indexación de artículos:
“ Clasificación e Indexación de 1.200 Artículos de Cuentas Públicas ”