Explicación detallada del escenario de la nueva política de contraseñas de MySQL 8.0

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.

d32db6c92a6dec44cb350443f7f18046.png

Cree un nuevo usuario sin especificar ningún atributo de contraseña de usuario.

335101158f6532b0d586d47e0ab9f21a.png

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.userLa 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.

de1552bb3cf7c10f57afa9c32db41000.png

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.

2e67a6ec4a83cd246ceb0c45cd3d93e2.png
Se recomienda utilizar una PC para ver

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.

d49923cc847fec56d1b20f6889c9f4be.png

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 que  password_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.

0733dd5201fd1a6bea60045485f503a2.png

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

Supongo que te gusta

Origin blog.csdn.net/bisal/article/details/132867401
Recomendado
Clasificación