Syntax
SET PASSWORD = { PASSWORD('some password') | OLD_PASSWORD('some password') | 'encrypted password' }
Description
la instrucción SET PASSWORD
asigna una contraseña a una cuenta de usuario de MariaDB existente.
si la contraseña se especifica usando la función PASSWORD()
o OLD_PASSWORD()
, se debe dar el texto literal de la contraseña. Si la contraseña se especifica sin usar ninguna de las dos funciones, la contraseña debe ser el valor de la contraseña ya cifrada que devuelvePASSWORD()
.,
OLD_PASSWORD()
solo debe usarse si sus clientes MariaDB/MySQL son muy antiguos (< 4.0.0).
sin la cláusula FOR
, esta instrucción establece la contraseña para el usuario actual. Cualquier cliente que se haya conectado al servidor utilizando una cuenta no anónima puede cambiar la contraseña de esa cuenta.
con una cláusula FOR
, esta instrucción establece la contraseña para una cuenta específica en el host del servidor actual., Solo los clientes que tienen el privilegio UPDATE
para la base de datos mysql
pueden hacer esto. El valor de usuario debe comenzar en el formato user_name@host_name
, donde user_name
y host_name
son exactamente como se enumeran en las columnas User y Host delmysql.user
entrada de la tabla.
el argumento a PASSWORD()
y la contraseña dada a los clientes MariaDB puede ser de longitud arbitraria.
Soporte de Plugin de autenticación
MariaDB a partir de 10.,4
en MariaDB 10.4 y versiones posteriores, SET PASSWORD
(con o sin PASSWORD()
) funciona para cuentas autenticadas a través de cualquier complemento de autenticación que admita contraseñas almacenadas en la tabla mysql.global_priv
.
El ed25519
, mysql_native_password
y mysql_old_password
autenticación de plugins almacenar las contraseñas en el mysql.global_priv
tabla.,
si ejecuta SET PASSWORD
en una cuenta que se autentica con uno de estos complementos de autenticación que almacena contraseñas en la tabla mysql.global_priv
, la función PASSWORD()
es evaluada por el complemento de autenticación específico utilizado por la cuenta. El plugin de autenticación hashes la contraseña con un método que es compatible con ese plugin de autenticación específico.,
El unix_socket
, named_pipe
, gssapi
y pam
autenticación de plugins no guarde las contraseñas en el mysql.global_priv
tabla. Estos plugins de autenticación se basan en otros métodos para autenticar al usuario.,
si intenta ejecutar SET PASSWORD
en una cuenta que se autentica con uno de estos complementos de autenticación que no almacena una contraseña en la tabla mysql.global_priv
, entonces MariaDB Server generará una advertencia como la siguiente:
SET PASSWORD is ignored for users authenticating via unix_socket plugin
MariaDB 10.4 Para una visión general de los cambios de autenticación en MariaDB 10.4.
MariaDB hasta 10.3
En MariaDB 10.,3 y anteriores, SET PASSWORD
(con o sin PASSWORD()
) solo funciona para cuentas autenticadas a través de mysql_native_password
o mysql_old_password
complementos de autenticación
las cuentas de usuario sin contraseña
las cuentas de usuario no siempre requieren contraseñas para iniciar sesión.
El unix_socket
, named_pipe
y gssapi
autenticación de plugins no requieren de una contraseña para autenticar al usuario.,
el complemento de autenticación pam
puede requerir o no una contraseña para autenticar al usuario, dependiendo de la configuración específica.
los complementos de autenticación mysql_native_password
y mysql_old_password
requieren contraseñas para la autenticación, pero la contraseña puede estar en blanco. En ese caso, no se requiere contraseña.
Si proporciona una contraseña al intentar iniciar sesión en el servidor como una cuenta que no requiere una contraseña, el servidor MariaDB simplemente ignorará la contraseña.
MariaDB a partir de 10.,4
en MariaDB 10.4 y versiones posteriores, se puede definir una cuenta de usuario para usar varios complementos de autenticación en un orden de preferencia específico. Este escenario específico puede ser más notable en estas versiones, ya que una cuenta podría estar asociada con algunos complementos de autenticación que requieren una contraseña, y algunos que no.
ejemplo
por ejemplo, si tuviera una entrada con valores de columna de usuario y host de ‘bob
‘ y ‘%.loc.,gov
‘, habría que escribir thestatement como esto:
SET PASSWORD FOR 'bob'@'%.loc.gov' = PASSWORD('newpass');
Si desea eliminar una contraseña de un usuario, se haría:
SET PASSWORD FOR 'bob'@localhost = PASSWORD("");
Véase También
- la Validación de la Contraseña Plugins – permite el establecimiento de criterios básicos para contraseñas
ALTER USER
Deja una respuesta