MySQL :: manual de Referencia de MySQL 8.0 :: 13.7.1.10 SET PASSWORD Statement

13.7.1.10 SET PASSWORD Statement

la instrucciónSET PASSWORD asigna una contraseña a una cuenta de usuario de MySQL. La contraseña puede ser especificada explícitamente en la instrucción o generada aleatoriamente por MySQL. La declaración también puede incluir una cláusula de verificación de contraseña que especifique la contraseña actual de la cuenta que se reemplazará, y una cláusula que administre si una cuenta tiene una contraseña secundaria., 'auth_string'y 'current_auth_string' representan una contraseña de texto claro (sin cifrar).

Note

en lugar de usar SET PASSWORD para asignar contraseñas, ALTER USER es la instrucción preferida para las alteraciones de la cuenta, incluida la asignación de contraseñas., Por ejemplo:

ALTER USER user IDENTIFIED BY 'auth_string';

Nota

Las cláusulas para la generación aleatoria de contraseñas, la verificación de contraseñas y las contraseñas secundarias solo se aplican a las cuentas que utilizan un complemento de autenticación que almacena las credenciales internamente en MySQL. Para las cuentas que utilizan un complemento que realiza la autenticación contra un sistema de credenciales que es externo a MySQL, la administración de contraseñas también debe manejarse externamente contra ese sistema. Para obtener más información sobre el almacenamiento interno de credenciales, consulte la sección 6.2.15,»administración de contraseñas».,

la cláusulaREPLACE 'current_auth_string' realiza la verificación de contraseña y está disponible a partir de MySQL 8.0.13. Si se indica:

  • REPLACE especifica la contraseña actual de la cuenta que se reemplazará, como una cadena de texto claro (sin cifrar).

  • la cláusula debe darse si se requieren cambios de contraseña para la cuenta para especificar la contraseña actual, como verificación de que el usuario que intenta realizar el cambio realmente conoce la contraseña actual.,

  • la cláusula es opcional si los cambios de contraseña para la cuenta pueden pero no necesitan especificar la contraseña actual.

  • la instrucción falla si se da la cláusula pero no coincide con la contraseña actual, incluso si la cláusula es opcional.

  • REPLACE solo se puede especificar al cambiar la contraseña de la cuenta para el usuario actual.

para obtener más información sobre la verificación de contraseñas especificando la contraseña actual, consulte la sección 6.2.15,»administración de contraseñas».,

la cláusula RETAIN CURRENT PASSWORD implementa la capacidad de doble contraseña y está disponible a partir de MySQL 8.0.14. Si se indica:

  • RETAIN CURRENT PASSWORD conserva una contraseña actual de la cuenta como su contraseña secundaria, reemplazando cualquier contraseña secundaria existente. La nueva contraseña se convierte en la contraseña principal, pero los clientes pueden usar la cuenta para conectarse al servidor utilizando la contraseña principal o secundaria., (Excepción: si la nueva contraseña especificada por la instrucción SET PASSWORD está vacía, la contraseña secundaria también se vacía, incluso si se da RETAIN CURRENT PASSWORD.)

  • si especifica RETAIN CURRENT PASSWORD para una cuenta que tiene una contraseña primaria vacía, la instrucción falla.

  • si una cuenta tiene una contraseña secundaria y cambia su contraseña primaria sin especificar RETAIN CURRENT PASSWORD, la contraseña secundaria permanece sin cambios.

para obtener más información sobre el uso de contraseñas duales, consulte la Sección 6.2.,15, «Gestión De Contraseñas».

SET PASSWORD permite que estos auth_option sintaxis:

  • = 'auth_string'

    Asigna la cuenta de que el dado literal contraseña.

  • TO RANDOM

    Asigna una contraseña a la cuenta generada aleatoriamente por MySQL. La instrucción también devuelve la contraseña de texto claro en un conjunto de resultados para que esté disponible para el usuario o la aplicación que ejecuta la instrucción.,

    para obtener más información sobre el conjunto de resultados y las características de las contraseñas generadas aleatoriamente, consulte generación aleatoria de contraseñas.

    la generación aleatoria de contraseñas está disponible a partir de MySQL 8.0.18.

importante

en algunas circunstancias, SET PASSWORD puede registrarse en los registros del servidor o en el lado del cliente en un archivo de historial como ~/.mysql_history, lo que significa que ser leído por cualquier persona que haya leído acceso a esa información., Para obtener información sobre las condiciones en las que esto ocurre para los registros del servidor y cómo controlarlo, consulte la sección 6.1.2.3, «contraseñas y registro». Para obtener información similar sobre el registro del lado del cliente, consulte la sección 4.5.1.3, «registro del cliente mysql».,p> SET PASSWORD se puede utilizar con o sin una cláusula FOR que nombra explícitamente una cuenta de usuario:

  • con una FOR user clause, the statement sets the password for the named account, which must exist:

    SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
  • with no FOR user clause, the statement sets the password for the current user:

    SET PASSWORD = 'auth_string';

    any El cliente que se conecta al servidor mediante una cuenta no anónima puede cambiar la contraseña de esa cuenta., (En particular, puede cambiar su propia contraseña.) Para ver con qué cuenta te autenticó el servidor, invoca la función CURRENT_USER():

    SELECT CURRENT_USER();

Si se da una cláusula FOR user, el nombre de la cuenta utiliza el formato descrito en la sección 6.2.4, «especificar nombres de cuenta». Por ejemplo:

SET PASSWORD FOR 'bob'@'%.example.org' = 'auth_string';

la parte del nombre de host del nombre de cuenta, si se omite, por defecto es '%'.,

SET PASSWORD interpreta la cadena como una cadena de texto claro, la pasa al complemento de autenticación asociado con la cuenta y almacena el resultado devuelto por el complemento en la fila de la cuenta en la tabla del sistema mysql.user. (El plugin se le da la oportunidad de hash el valor en el formato de Cifrado que espera. El plugin puede utilizar el valor especificado, en cuyo caso no se produce ningún hash.,)

establecer la contraseña para una cuenta con nombre (con una cláusula FOR) requiere el privilegio UPDATE para el esquema del sistema mysql. Configurar la contraseña para usted (para una cuenta no anónima sin la cláusula FOR) no requiere privilegios especiales.,

Las declaraciones que modifican contraseñas secundarias requieren estos privilegios:

  • el privilegioAPPLICATION_PASSWORD_ADMIN se requiere para usar la cláusulaRETAIN CURRENT PASSWORD paraSET PASSWORD estados de cuenta que se aplican a su propia cuenta. El privilegio es necesario para manipular su propia contraseña secundaria porque la mayoría de los usuarios solo requieren una contraseña.,

  • si se permite a una cuenta manipular contraseñas secundarias para todas las cuentas, se le debe otorgar el privilegio CREATE USER en lugar de APPLICATION_PASSWORD_ADMIN.

Cuando la variable de sistema read_only está habilitada, SET PASSWORD requiere el privilegio CONNECTION_ADMIN (o el privilegio>privilegio), además de cualquier otro privilegio requerido.

para obtener información adicional sobre la configuración de contraseñas y complementos de autenticación, consulte la Sección 6.2.,14, «asignación de contraseñas de cuentas», y sección 6.2.17,»autenticación conectable».

Share

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *