Nuestro equipo especializado pasados algunos días de investigación y recopilación de de datos, obtuvieron los datos necesarios, deseamos que te sea de utilidad para tu trabajo.
los mysql_native_password
El complemento de autenticación es el complemento de autenticación predeterminado que se utilizará para una cuenta creada cuando no se menciona explícitamente ningún complemento de autenticación y old_passwords=0
Está establecido. Utiliza el algoritmo hash de contraseña introducido en MySQL 4.1, que también es utilizado por PASSWORD()
funcionar cuando old_passwords=0
Está establecido. Este algoritmo hash se basa en SHA-1.
No se recomienda utilizar el mysql_native_password
complemento de autenticación para nuevas instalaciones que requieren alta seguridad de contraseña. Si alguien puede escuchar el protocolo de conexión y obtener una copia de la tabla mysql.user, entonces la persona podrá usar esta información para conectarse al servidor MariaDB. los ed25519
El complemento de autenticación es un complemento de autenticación más moderno que proporciona una autenticación de contraseña simple mediante un algoritmo más seguro.
Instalación del complemento
los mysql_native_password
El complemento de autenticación está vinculado estáticamente al servidor, por lo que no es necesaria ninguna instalación.
Crear usuarios
La forma más sencilla de crear una cuenta de usuario con la mysql_native_password
complemento de autenticación es para asegurarse de que old_passwords=0
está configurado, y luego cree una cuenta de usuario a través de CREATE USER
que no especifica un complemento de autenticación, pero especifica una contraseña a través del IDENTIFIED BY
cláusula. Por ejemplo:
SET old_passwords=0;CREATEUSER username@hostname IDENTIFIED BY'mariadb';
Si SQL_MODE
no tiene NO_AUTO_CREATE_USER
, entonces también puede crear la cuenta de usuario a través de GRANT
. Por ejemplo:
SET old_passwords=0;GRANTSELECTON db.*TO username@hostname IDENTIFIED BY'mariadb';
También puede crear la cuenta de usuario proporcionando un hash de contraseña a través del IDENTIFIED BY PASSWORD
cláusula, y MariaDB validará si el hash de la contraseña es compatible con mysql_native_password
. Por ejemplo:
SET old_passwords=0; Query OK,0rows affected (0.000 sec)SELECT PASSWORD('mariadb');+-------------------------------------------+| PASSWORD('mariadb')|+-------------------------------------------+|*54958E764CE10E50764C2EECBB71D01F08549980 |+-------------------------------------------+1rowinset(0.000 sec)CREATEUSER username@hostname IDENTIFIED BY PASSWORD '*54958E764CE10E50764C2EECBB71D01F08549980';
Al igual que con todos los demás complementos de autenticación, también puede especificar el nombre del complemento en el IDENTIFIED VIA
cláusula al tiempo que proporciona el hash de la contraseña como USING
cláusula. Por ejemplo:
CREATEUSER username@hostname IDENTIFIED VIA mysql_native_password USING'*54958E764CE10E50764C2EECBB71D01F08549980'; Query OK,0rows affected (0.000 sec)
Cambio de contraseñas de usuario
Puede cambiar la contraseña de una cuenta de usuario con el SET PASSWORD
declaración al tiempo que proporciona la contraseña de texto sin formato como argumento a la PASSWORD()
función. Por ejemplo:
SET PASSWORD = PASSWORD('new_secret')
También puede cambiar la contraseña de la cuenta de usuario con el ALTER USER
declaración. Tendrías que asegurarte de que old_passwords=0
está configurado, y luego tendría que especificar una contraseña a través del IDENTIFIED BY
cláusula. Por ejemplo:
SET old_passwords=0;ALTERUSER username@hostname IDENTIFIED BY'new_secret';
Complementos de autenticación de clientes
Para clientes que utilizan el libmysqlclient
o bibliotecas MariaDB Connector / C, MariaDB proporciona un complemento de autenticación de cliente que es compatible con mysql_native_password
complemento de autenticación:
mysql_native_password
Al conectarse con un cliente o una utilidad a un servidor como una cuenta de usuario que se autentica con el mysql_native_password
complemento de autenticación, es posible que deba decirle al cliente dónde encontrar el complemento de autenticación de cliente relevante especificando el --plugin-dir
opción. Por ejemplo:
mysql --plugin-dir=/usr/local/mysql/lib64/mysql/plugin --user=alice
sin embargo, el mysql_native_password
El complemento de autenticación de cliente generalmente está vinculado estáticamente a bibliotecas de cliente como libmysqlclient
o MariaDB Connector / C, por lo que normalmente no es necesario.
mysql_native_password
los mysql_native_password
El complemento de autenticación del cliente aplica un hash a la contraseña antes de enviarla al servidor.
Soporte en bibliotecas cliente
los mysql_native_password
El complemento de autenticación es uno de los complementos de autenticación convencionales, por lo que todas las bibliotecas cliente deberían admitirlo.
Problemas antiguos conocidos (solo relevante para instalaciones antiguas)
Discrepancias entre las columnas Password y authentication_string
Por razones de compatibilidad, el mysql_native_password
El complemento de autenticación intenta leer el hash de la contraseña de ambos Password
y authentication_string
columnas en el mysql.user
mesa. Esto ha causado problemas en el pasado si una de las columnas tenía un valor diferente al de la otra.
Empezando con MariaDB 10.2.19 y MariaDB 10.3.11, CREATE USER
, ALTER USER
, GRANT
, y SET PASSWORD
establecerá ambas columnas siempre que se cambie la contraseña de una cuenta.
Ver MDEV-16774 para más información.
Ver también
- complemento de conexión segura ed25519
- Historia de los protocolos de autenticación MySQL y MariaDB
El contenido reproducido en este sitio es propiedad de sus respectivos dueños, y MariaDB no revisa este contenido con anticipación. Los puntos de vista, la información y las opiniones expresadas por este contenido no representan necesariamente las de MariaDB o de cualquier otra parte.
Nos encantaría que puedieras dar visibilidad a esta noticia si te valió la pena.