Comparteix a través de


ALTER LOGIN (Transact-SQL)

Cambia las propiedades de una cuenta de inicio de sesión de SQL Server.

Convenciones de sintaxis de Transact-SQL

Nota:

El identificador de Microsoft Entra se conocía anteriormente como Azure Active Directory (Azure AD).

Selección de un producto

En la fila siguiente, seleccione el nombre del producto que le interese; de esta manera, solo se mostrará la información de ese producto.

* SQL Server *  

 

SQL Server

Sintaxis

-- Syntax for SQL Server

ALTER LOGIN login_name
    {
    <status_option>
    | WITH <set_option> [ ,... ]
    | <cryptographic_credential_option>
    }
[;]

<status_option> ::=
        ENABLE | DISABLE

<set_option> ::=
    PASSWORD = 'password' | hashed_password HASHED
    [
      OLD_PASSWORD = 'oldpassword'
      | <password_option> [<password_option> ]
    ]
    | DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language
    | NAME = login_name
    | CHECK_POLICY = { ON | OFF }
    | CHECK_EXPIRATION = { ON | OFF }
    | CREDENTIAL = credential_name
    | NO CREDENTIAL

<password_option> ::=
    MUST_CHANGE | UNLOCK

<cryptographic_credentials_option> ::=
    ADD CREDENTIAL credential_name
  | DROP CREDENTIAL credential_name

Argumentos

login_name Especifica el nombre del inicio de sesión de SQL Server que se está cambiando. Los inicios de sesión del dominio se deben incluir entre corchetes con el formato [dominio\usuario].

ENABLE | DISABLE Habilita o deshabilita este inicio de sesión. Deshabilitar un inicio de sesión no afecta al comportamiento de los inicios de sesión que ya están conectados. (Use la instrucción KILL para finalizar las conexiones existentes). Los inicios de sesión deshabilitados conservan sus permisos y pueden seguir siendo suplantados.

PASSWORD ='password' Se aplica solo a los inicios de sesión de SQL Server. Especifica la contraseña del inicio de sesión que se está cambiando. En las contraseñas se distingue entre mayúsculas y minúsculas.

PASSWORD =hashed_password Se aplica solo a la palabra clave HASHED. Especifica el valor con hash de la contraseña para el inicio de sesión que se está creando.

Importante

Cuando un inicio de sesión (o un usuario de base de datos independiente) se conecta y se autentica, la conexión almacena en memoria caché información de identidad del inicio de sesión. Para un inicio de sesión con autenticación de Windows, esto incluye la información sobre la pertenencia a grupos de Windows. La identidad del inicio de sesión permanecerá autenticada mientras dure la conexión. Para aplicar cambios en la identidad, como un cambio o restablecimiento de contraseña de la pertenencia al grupo de Windows, el inicio de sesión debe cerrar sesión en la entidad de autenticación (Windows o SQL Server) y volver a iniciarla. Los miembros del rol fijo de servidor sysadmin o cualquier inicio de sesión con el permiso ALTER ANY CONNECTION puede usar el comando KILL para finalizar una conexión y hacer que el inicio de sesión se vuelva a conectar. SQL Server Management Studio puede reutilizar la información de conexión al abrir varias conexiones en las ventanas del Explorador de objetos y del Editor de consultas. Cierre todas las conexiones para forzar una reconexión.

HASHED Solo se aplica a inicios de sesión de SQL Server. Especifica que la contraseña especificada después del argumento PASSWORD ya tiene aplicado el algoritmo hash. Si no se selecciona esta opción, se aplica un algoritmo hash a la contraseña antes de almacenarla en la base de datos. Esta opción solo se debería utilizar para la sincronización del inicio de sesión entre dos servidores. No utilice la opción HASHED para cambiar las contraseñas de forma habitual.

OLD_PASSWORD ='oldpassword' Se aplica solo a los inicios de sesión de SQL Server. La contraseña actual del inicio de sesión al que se va a asignar una contraseña nueva. En las contraseñas se distingue entre mayúsculas y minúsculas.

MUST_CHANGE Solo se aplica a inicios de sesión de SQL Server. Si se incluye esta opción, SQL Server pedirá la contraseña actualizada la primera vez que se utilice el inicio de sesión modificado.

DEFAULT_DATABASE =database Especifica una base de datos predeterminada que debe asignarse al inicio de sesión.

DEFAULT_LANGUAGE =language Especifica el idioma predeterminado que debe asignarse al inicio de sesión. El idioma predeterminado para todos los inicios de sesión de SQL Database es el inglés y no se puede cambiar. El idioma predeterminado del inicio de sesión de sa en SQL Server en Linux es el inglés, pero se puede cambiar.

NAME = login_name El nombre nuevo del inicio de sesión al que se está cambiando el nombre. Si se trata de un inicio de sesión de Windows, el SID de la entidad de seguridad de Windows correspondiente al nombre nuevo debe coincidir con el SID asociado al inicio de sesión en SQL Server. El nombre nuevo de un inicio de sesión de SQL Server no puede contener un carácter de barra diagonal inversa (\).

CHECK_EXPIRATION = { ON | OFF } Se aplica solo a los inicios de sesión de SQL Server. Especifica si debe aplicarse la directiva de caducidad de contraseñas en este inicio de sesión. El valor predeterminado es OFF.

CHECK_POLICY = { ON | OFF } Se aplica solo a los inicios de sesión de SQL Server. Especifica que se deben aplicar las directivas de contraseñas de Windows en el equipo en el que se ejecuta SQL Server para este inicio de sesión. El valor predeterminado es ON.

CREDENTIAL = credential_name El nombre de una credencial que debe asignarse a un inicio de sesión de SQL Server. La credencial debe existir en la base de datos. Para más información, vea Credenciales. Las credenciales no se pueden asignar al inicio de sesión sa.

NO CREDENTIAL Elimina cualquier asignación existente del inicio de sesión a una credencial de servidor. Para más información, vea Credenciales.

UNLOCK Solo se aplica a inicios de sesión de SQL Server. Especifica que un inicio de sesión bloqueado debe desbloquearse.

ADD CREDENTIAL Agrega una credencial del proveedor de Administración extensible de claves (EKM) al inicio de sesión. Para más información, vea Administración extensible de claves (EKM).

DROP CREDENTIAL Quita una credencial del proveedor de Administración extensible de claves (EKM) del inicio de sesión. Para más información, consulte [Administración extensible de claves (EKM)] (../.. /relational-databases/security/encryption/extensible-key-management-ekm.md).

Observaciones

Cuando CHECK_POLICY se establece en ON, no puede utilizarse el argumento HASHED.

Cuando el valor de CHECK_POLICY se cambia a ON, ocurre lo siguiente:

  • El historial de contraseñas se inicializa con el valor del hash de contraseña actual.

    Cuando el valor de CHECK_POLICY se cambia a OFF, ocurre lo siguiente:

  • La opción CHECK_EXPIRATION también se cambia a OFF.

  • Se borra el historial de contraseñas.

  • El valor de lockout_time se restablece.

Si se especifica MUST_CHANGE, CHECK_EXPIRATION y CHECK_POLICY, deben establecerse en ON. Si no es así, la instrucción producirá un error.

Si CHECK_POLICY se establece en OFF, CHECK_EXPIRATION no puede establecerse en ON. Una instrucción ALTER LOGIN con esta combinación de opciones dará error.

No puede usar ALTER LOGIN con el argumento DISABLE para denegar el acceso a un grupo de Windows. Por ejemplo, ALTER LOGIN [domain\group] DISABLE devolverá el mensaje de error siguiente:

"Msg 15151, Level 16, State 1, Line 1 "Cannot alter the login '*Domain\Group*', because it does not exist or you do not have permission."

es así por diseño.

En SQL Database, los datos de inicio de sesión necesarios para autenticar una conexión y reglas de firewall de nivel de servidor se almacenan temporalmente en caché en cada base de datos. Esta caché se actualiza regularmente. Para forzar una actualización de la caché de autenticación y garantizar que una base de datos tenga la versión más reciente de la tabla de inicios de sesión, ejecute DBCC FLUSHAUTHCACHE.

Permisos

Requiere el permiso ALTER ANY LOGIN.

Si se utiliza la opción CREDENTIAL, también será necesario el permiso ALTER ANY CREDENTIAL.

Si el inicio de sesión que se está cambiado es un miembro del rol fijo de servidor sysadmin o tiene concedido el permiso CONTROL SERVER, también será necesario el permiso CONTROL SERVER para realizar los cambios siguientes:

  • Restablecer la contraseña sin proporcionar la antigua.
  • Habilitar MUST_CHANGE, CHECK_POLICY o CHECK_EXPIRATION.
  • Cambiar el nombre de inicio de sesión.
  • Habilitar o deshabilitar el inicio de sesión.
  • Asignar el inicio de sesión a una credencial diferente.

Una entidad de seguridad puede cambiar la contraseña, el idioma predeterminado y la base de datos predeterminada para su propio inicio de sesión.

Ejemplos

A. Habilitar un inicio de sesión deshabilitado

En el ejemplo siguiente se habilita el inicio de sesión Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Cambiar la contraseña de un inicio de sesión

En el ejemplo siguiente se cambia la contraseña del inicio de sesión Mary5 a una contraseña segura.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Cambio de la contraseña de un inicio de sesión al iniciar sesión con el inicio de sesión

Si intenta cambiar la contraseña del inicio de sesión con el que ha iniciado sesión actualmente y no tiene el permiso ALTER ANY LOGIN, debe especificar la opción OLD_PASSWORD.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>' OLD_PASSWORD = '<oldWeakPasswordHere>';

D. Cambiar el nombre de un inicio de sesión

En el ejemplo siguiente se cambia el nombre del inicio de sesión Mary5 a John2.

ALTER LOGIN Mary5 WITH NAME = John2;

E. Asignar un inicio de sesión a una credencial

En el ejemplo siguiente se asigna el inicio de sesión John2 a la credencial Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

F. Asignar un inicio de sesión a una credencial de Administración de claves extensible

En el ejemplo siguiente se asigna el inicio de sesión Mary5 a la credencial EKM EKMProvider1.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F. Desbloquear un inicio de sesión

Para desbloquear un inicio de sesión de SQL Server, ejecute la instrucción siguiente y sustituya **** por la contraseña de cuenta deseada.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK ;
GO

Para desbloquear un inicio de sesión sin cambiar la contraseña, desactive la directiva de comprobación y, a continuación, inicie sesión de nuevo.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;
ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Cambiar la contraseña de un inicio de sesión utilizando HASHED

En el ejemplo siguiente se cambia la contraseña de inicio de sesión de TestUser a un valor que ya tiene aplicado hash.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Consulte también

* SQL Database *

 

SQL Database

SQL Server

Sintaxis

-- Syntax for Azure SQL Database

ALTER LOGIN login_name
  {
      <status_option>
    | WITH <set_option> [ ,.. .n ]
  }
[;]

<status_option> ::=
    ENABLE | DISABLE

<set_option> ::=
    PASSWORD ='password'
    [
      OLD_PASSWORD ='oldpassword'
    ]
    | NAME = login_name

Argumentos

login_name Especifica el nombre del inicio de sesión de SQL Server que se está cambiando. Los inicios de sesión del dominio se deben incluir entre corchetes con el formato [dominio\usuario].

ENABLE | DISABLE Habilita o deshabilita este inicio de sesión. Deshabilitar un inicio de sesión no afecta al comportamiento de los inicios de sesión que ya están conectados. (Use la instrucción KILL para finalizar las conexiones existentes). Los inicios de sesión deshabilitados conservan sus permisos y pueden seguir siendo suplantados.

PASSWORD ='password' Se aplica solo a los inicios de sesión de SQL Server. Especifica la contraseña del inicio de sesión que se está cambiando. En las contraseñas se distingue entre mayúsculas y minúsculas.

Las conexiones continuamente activas a SQL Database requieren una reautorización (realizada por el Motor de base de datos) como mínimo cada 10 horas. El Motor de base de datos intenta la reautorización con la contraseña enviada originalmente y no se requiere la intervención del usuario. Por motivos de rendimiento, cuando una contraseña se restablece en SQL Database, la conexión no se volverá a autenticar, incluso si se restablece la conexión debido a la agrupación de conexiones. Esto es diferente del comportamiento de SQL Database local. Si la contraseña se ha cambiado desde que se autorizó inicialmente la conexión, es necesario terminar la conexión y establecer una nueva conexión con la nueva contraseña. Un usuario con el permiso KILL DATABASE CONNECTION puede terminar explícitamente una conexión con SQL Database mediante el comando KILL. Para obtener más información, vea KILL.

Importante

Cuando un inicio de sesión (o un usuario de base de datos independiente) se conecta y se autentica, la conexión almacena en memoria caché información de identidad del inicio de sesión. Para un inicio de sesión con autenticación de Windows, esto incluye la información sobre la pertenencia a grupos de Windows. La identidad del inicio de sesión permanecerá autenticada mientras dure la conexión. Para aplicar cambios en la identidad, como un cambio o restablecimiento de contraseña de la pertenencia al grupo de Windows, el inicio de sesión debe cerrar sesión en la entidad de autenticación (Windows o SQL Server) y volver a iniciarla. Los miembros del rol fijo de servidor sysadmin o cualquier inicio de sesión con el permiso ALTER ANY CONNECTION puede usar el comando KILL para finalizar una conexión y hacer que el inicio de sesión se vuelva a conectar. SQL Server Management Studio puede reutilizar la información de conexión al abrir varias conexiones en las ventanas del Explorador de objetos y del Editor de consultas. Cierre todas las conexiones para forzar una reconexión.

OLD_PASSWORD ='oldpassword' Se aplica solo a los inicios de sesión de SQL Server. La contraseña actual del inicio de sesión al que se va a asignar una contraseña nueva. En las contraseñas se distingue entre mayúsculas y minúsculas.

NAME = login_name El nombre nuevo del inicio de sesión al que se está cambiando el nombre. Si se trata de un inicio de sesión de Windows, el SID de la entidad de seguridad de Windows correspondiente al nombre nuevo debe coincidir con el SID asociado al inicio de sesión en SQL Server. El nombre nuevo de un inicio de sesión de SQL Server no puede contener un carácter de barra diagonal inversa (\).

Observaciones

En SQL Database, los datos de inicio de sesión necesarios para autenticar una conexión y reglas de firewall de nivel de servidor se almacenan temporalmente en caché en cada base de datos. Esta caché se actualiza regularmente. Para forzar una actualización de la caché de autenticación y garantizar que una base de datos tenga la versión más reciente de la tabla de inicios de sesión, ejecute DBCC FLUSHAUTHCACHE.

Permisos

Requiere el permiso ALTER ANY LOGIN.

Si el inicio de sesión que se está cambiado es un miembro del rol fijo de servidor sysadmin o tiene concedido el permiso CONTROL SERVER, también será necesario el permiso CONTROL SERVER para realizar los cambios siguientes:

  • Restablecer la contraseña sin proporcionar la antigua.
  • Cambiar el nombre de inicio de sesión.
  • Habilitar o deshabilitar el inicio de sesión.
  • Asignar el inicio de sesión a una credencial diferente.

Una entidad de seguridad puede cambiar la contraseña de su propio inicio de sesión.

Ejemplos

En estos ejemplos también se incluyen ejemplos de uso de otros productos SQL. Más arriba puede ver los argumentos que se admiten.

A. Habilitar un inicio de sesión deshabilitado

En el ejemplo siguiente se habilita el inicio de sesión Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Cambiar la contraseña de un inicio de sesión

En el ejemplo siguiente se cambia la contraseña del inicio de sesión Mary5 a una contraseña segura.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Cambiar el nombre de un inicio de sesión

En el ejemplo siguiente se cambia el nombre del inicio de sesión Mary5 a John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Asignar un inicio de sesión a una credencial

En el ejemplo siguiente se asigna el inicio de sesión John2 a la credencial Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Asignar un inicio de sesión a una credencial de Administración de claves extensible

En el ejemplo siguiente se asigna el inicio de sesión Mary5 a la credencial EKM EKMProvider1.

Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F. Cambiar la contraseña de un inicio de sesión utilizando HASHED

En el ejemplo siguiente se cambia la contraseña de inicio de sesión de TestUser a un valor que ya tiene aplicado hash.

Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Consulte también

* SQL Managed Instance *

 

Azure SQL Managed Instance

Sintaxis

-- Syntax for SQL Server and Azure SQL Managed Instance

ALTER LOGIN login_name
    {
    <status_option>
    | WITH <set_option> [ ,... ]
    | <cryptographic_credential_option>
    }
[;]

<status_option> ::=
        ENABLE | DISABLE

<set_option> ::=
    PASSWORD = 'password' | hashed_password HASHED
    [
      OLD_PASSWORD = 'oldpassword'
      | <password_option> [<password_option> ]
    ]
    | DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language
    | NAME = login_name
    | CHECK_POLICY = { ON | OFF }
    | CHECK_EXPIRATION = { ON | OFF }
    | CREDENTIAL = credential_name
    | NO CREDENTIAL

<password_option> ::=
    MUST_CHANGE | UNLOCK

<cryptographic_credentials_option> ::=
    ADD CREDENTIAL credential_name
  | DROP CREDENTIAL credential_name
-- Syntax for Azure SQL Managed Instance using Microsoft Entra logins


ALTER LOGIN login_name
  {
      <status_option>
    | WITH <set_option> [ ,.. .n ]
  }
[;]

<status_option> ::=
    ENABLE | DISABLE

<set_option> ::=
     DEFAULT_DATABASE = database
   | DEFAULT_LANGUAGE = language

Argumentos

Argumentos aplicables a los inicios de sesión de SQL y Microsoft Entra

login_name Especifica el nombre del inicio de sesión de SQL Server que se está cambiando. Los inicios de sesión de Microsoft Entra deben especificarse como user@domain. Por ejemplo, john.smith@contoso.com, o como nombre de aplicación o grupo de Microsoft Entra. Para los inicios de sesión de Microsoft Entra, el login_name debe corresponder a un inicio de sesión de Microsoft Entra existente creado en la base de datos maestra.

ENABLE | DISABLE Habilita o deshabilita este inicio de sesión. Deshabilitar un inicio de sesión no afecta al comportamiento de los inicios de sesión que ya están conectados. (Use la instrucción KILL para finalizar una conexión existente). Los inicios de sesión deshabilitados conservan sus permisos y pueden seguir siendo suplantados.

DEFAULT_DATABASE =database Especifica una base de datos predeterminada que debe asignarse al inicio de sesión.

DEFAULT_LANGUAGE =language Especifica el idioma predeterminado que debe asignarse al inicio de sesión. El idioma predeterminado para todos los inicios de sesión de SQL Database es el inglés y no se puede cambiar. El idioma predeterminado del inicio de sesión de sa en SQL Server en Linux es el inglés, pero se puede cambiar.

Argumentos que solo se aplican a los inicios de sesión SQL

PASSWORD ='password' Se aplica solo a los inicios de sesión de SQL Server. Especifica la contraseña del inicio de sesión que se está cambiando. En las contraseñas se distingue entre mayúsculas y minúsculas. Las contraseñas tampoco se aplican cuando se usan con inicios de sesión externos, como los inicios de sesión de Microsoft Entra.

Las conexiones continuamente activas a SQL Database requieren una reautorización (realizada por el Motor de base de datos) como mínimo cada 10 horas. El Motor de base de datos intenta la reautorización con la contraseña enviada originalmente y no se requiere la intervención del usuario. Por motivos de rendimiento, cuando una contraseña se restablece en SQL Database, la conexión no se volverá a autenticar, incluso si se restablece la conexión debido a la agrupación de conexiones. Esto es diferente del comportamiento de SQL Database local. Si la contraseña se ha cambiado desde que se autorizó inicialmente la conexión, es necesario terminar la conexión y establecer una nueva conexión con la nueva contraseña. Un usuario con el permiso KILL DATABASE CONNECTION puede terminar explícitamente una conexión con SQL Database mediante el comando KILL. Para obtener más información, vea KILL.

PASSWORD =hashed_password Se aplica solo a la palabra clave HASHED. Especifica el valor con hash de la contraseña para el inicio de sesión que se está creando.

HASHED Solo se aplica a inicios de sesión de SQL Server. Especifica que la contraseña especificada después del argumento PASSWORD ya tiene aplicado el algoritmo hash. Si no se selecciona esta opción, se aplica un algoritmo hash a la contraseña antes de almacenarla en la base de datos. Esta opción solo se debería utilizar para la sincronización del inicio de sesión entre dos servidores. No utilice la opción HASHED para cambiar las contraseñas de forma habitual.

OLD_PASSWORD ='oldpassword' Se aplica solo a los inicios de sesión de SQL Server. La contraseña actual del inicio de sesión al que se va a asignar una contraseña nueva. En las contraseñas se distingue entre mayúsculas y minúsculas.

MUST_CHANGE
Solo se aplica a inicios de sesión de SQL Server. Si se incluye esta opción, SQL Server pedirá la contraseña actualizada la primera vez que se utilice el inicio de sesión modificado.

NAME = login_name El nombre nuevo del inicio de sesión al que se está cambiando el nombre. Si se trata de un inicio de sesión de Windows, el SID de la entidad de seguridad de Windows correspondiente al nombre nuevo debe coincidir con el SID asociado al inicio de sesión en SQL Server. El nombre nuevo de un inicio de sesión de SQL Server no puede contener un carácter de barra diagonal inversa (\).

CHECK_EXPIRATION = { ON | OFF } Se aplica solo a los inicios de sesión de SQL Server. Especifica si debe aplicarse la directiva de caducidad de contraseñas en este inicio de sesión. El valor predeterminado es OFF.

CHECK_POLICY = { ON | OFF } Se aplica solo a los inicios de sesión de SQL Server. Especifica que se deben aplicar las directivas de contraseñas de Windows en el equipo en el que se ejecuta SQL Server para este inicio de sesión. El valor predeterminado es ON.

CREDENTIAL = credential_name El nombre de una credencial que debe asignarse a un inicio de sesión de SQL Server. La credencial debe existir en la base de datos. Para más información, vea Credenciales. Las credenciales no se pueden asignar al inicio de sesión sa.

NO CREDENTIAL Elimina cualquier asignación existente del inicio de sesión a una credencial de servidor. Para más información, vea Credenciales.

UNLOCK Solo se aplica a inicios de sesión de SQL Server. Especifica que un inicio de sesión bloqueado debe desbloquearse.

ADD CREDENTIAL Agrega una credencial del proveedor de Administración extensible de claves (EKM) al inicio de sesión. Para más información, vea Administración extensible de claves (EKM).

DROP CREDENTIAL Quita una credencial del proveedor de Administración extensible de claves (EKM) del inicio de sesión. Para más información, vea Administración extensible de claves (EKM).

Observaciones

Cuando CHECK_POLICY se establece en ON, no puede utilizarse el argumento HASHED.

Cuando el valor de CHECK_POLICY se cambia a ON, ocurre lo siguiente:

  • El historial de contraseñas se inicializa con el valor del hash de contraseña actual.

    Cuando el valor de CHECK_POLICY se cambia a OFF, ocurre lo siguiente:

  • La opción CHECK_EXPIRATION también se cambia a OFF.

  • Se borra el historial de contraseñas.

  • El valor de lockout_time se restablece.

Si se especifica MUST_CHANGE, CHECK_EXPIRATION y CHECK_POLICY, deben establecerse en ON. Si no es así, la instrucción producirá un error.

Si CHECK_POLICY se establece en OFF, CHECK_EXPIRATION no puede establecerse en ON. Una instrucción ALTER LOGIN con esta combinación de opciones dará error.

No puede usar ALTER_LOGIN con el argumento DISABLE para denegar el acceso a un grupo de Windows. es así por diseño. Por ejemplo, ALTER_LOGIN [domain\group] DISABLE devolverá el siguiente mensaje de error:

"Msg 15151, Level 16, State 1, Line 1 "Cannot alter the login '*Domain\Group*', because it does not exist or you do not have permission."

En SQL Database, los datos de inicio de sesión necesarios para autenticar una conexión y reglas de firewall de nivel de servidor se almacenan temporalmente en caché en cada base de datos. Esta caché se actualiza regularmente. Para forzar una actualización de la caché de autenticación y garantizar que una base de datos tenga la versión más reciente de la tabla de inicios de sesión, ejecute DBCC FLUSHAUTHCACHE.

Permisos

Requiere el permiso ALTER ANY LOGIN.

Si se utiliza la opción CREDENTIAL, también será necesario el permiso ALTER ANY CREDENTIAL.

Si el inicio de sesión que se está cambiado es un miembro del rol fijo de servidor sysadmin o tiene concedido el permiso CONTROL SERVER, también será necesario el permiso CONTROL SERVER para realizar los cambios siguientes:

  • Restablecer la contraseña sin proporcionar la antigua.
  • Habilitar MUST_CHANGE, CHECK_POLICY o CHECK_EXPIRATION.
  • Cambiar el nombre de inicio de sesión.
  • Habilitar o deshabilitar el inicio de sesión.
  • Asignar el inicio de sesión a una credencial diferente.

Una entidad de seguridad puede cambiar la contraseña, el idioma predeterminado y la base de datos predeterminada para su propio inicio de sesión.

Solo una entidad de seguridad de SQL con sysadmin privilegios puede ejecutar un comando ALTER LOGIN en un inicio de sesión de Microsoft Entra.

Ejemplos

En estos ejemplos también se incluyen ejemplos de uso de otros productos SQL. Más arriba puede ver los argumentos que se admiten.

A. Habilitar un inicio de sesión deshabilitado

En el ejemplo siguiente se habilita el inicio de sesión Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Cambiar la contraseña de un inicio de sesión

En el ejemplo siguiente se cambia la contraseña del inicio de sesión Mary5 a una contraseña segura.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Cambiar el nombre de un inicio de sesión

En el ejemplo siguiente se cambia el nombre del inicio de sesión Mary5 a John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Asignar un inicio de sesión a una credencial

En el ejemplo siguiente se asigna el inicio de sesión John2 a la credencial Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Asignar un inicio de sesión a una credencial de Administración de claves extensible

En el ejemplo siguiente se asigna el inicio de sesión Mary5 a la credencial EKM EKMProvider1.

Se aplica a: SQL Server 2008 (10.0.x), y versiones posteriores, y Azure SQL Managed Instance.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F. Desbloquear un inicio de sesión

Para desbloquear un inicio de sesión de SQL Server, ejecute la instrucción siguiente y sustituya **** por la contraseña de cuenta deseada.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK ;

GO

Para desbloquear un inicio de sesión sin cambiar la contraseña, desactive la directiva de comprobación y, a continuación, inicie sesión de nuevo.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;
ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Cambiar la contraseña de un inicio de sesión utilizando HASHED

En el ejemplo siguiente se cambia la contraseña de inicio de sesión de TestUser a un valor que ya tiene aplicado hash.

Se aplica a: SQL Server 2008 (10.0.x), y versiones posteriores, y Azure SQL Managed Instance.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

H. Deshabilitación del inicio de sesión de un usuario de Microsoft Entra

En el ejemplo siguiente se deshabilita el inicio de sesión de un usuario de Microsoft Entra, joe@contoso.com.

ALTER LOGIN [joe@contoso.com] DISABLE

Consulte también

* Azure Synapse
Analytics *

 

Azure Synapse Analytics

Sintaxis

-- Syntax for Azure Synapse

ALTER LOGIN login_name
  {
      <status_option>
    | WITH <set_option> [ ,.. .n ]
  }
[;]

<status_option> ::=
    ENABLE | DISABLE

<set_option> ::=
    PASSWORD ='password'
    [
      OLD_PASSWORD ='oldpassword'
    ]
    | NAME = login_name

Argumentos

login_name Especifica el nombre del inicio de sesión de SQL Server que se está cambiando. Los inicios de sesión del dominio se deben incluir entre corchetes con el formato [dominio\usuario].

ENABLE | DISABLE Habilita o deshabilita este inicio de sesión. Deshabilitar un inicio de sesión no afecta al comportamiento de los inicios de sesión que ya están conectados. (Use la instrucción KILL para finalizar las conexiones existentes). Los inicios de sesión deshabilitados conservan sus permisos y pueden seguir siendo suplantados.

PASSWORD ='password' Se aplica solo a los inicios de sesión de SQL Server. Especifica la contraseña del inicio de sesión que se está cambiando. En las contraseñas se distingue entre mayúsculas y minúsculas.

Las conexiones continuamente activas a SQL Database requieren una reautorización (realizada por el Motor de base de datos) como mínimo cada 10 horas. El Motor de base de datos intenta la reautorización con la contraseña enviada originalmente y no se requiere la intervención del usuario. Por motivos de rendimiento, cuando una contraseña se restablece en SQL Database, la conexión no se volverá a autenticar, incluso si se restablece la conexión debido a la agrupación de conexiones. Esto es diferente del comportamiento de SQL Database local. Si la contraseña se ha cambiado desde que se autorizó inicialmente la conexión, es necesario terminar la conexión y establecer una nueva conexión con la nueva contraseña. Un usuario con el permiso KILL DATABASE CONNECTION puede terminar explícitamente una conexión con SQL Database mediante el comando KILL. Para obtener más información, vea KILL.

Importante

Cuando un inicio de sesión (o un usuario de base de datos independiente) se conecta y se autentica, la conexión almacena en memoria caché información de identidad del inicio de sesión. Para un inicio de sesión con autenticación de Windows, esto incluye la información sobre la pertenencia a grupos de Windows. La identidad del inicio de sesión permanecerá autenticada mientras dure la conexión. Para aplicar cambios en la identidad, como un cambio o restablecimiento de contraseña de la pertenencia al grupo de Windows, el inicio de sesión debe cerrar sesión en la entidad de autenticación (Windows o SQL Server) y volver a iniciarla. Los miembros del rol fijo de servidor sysadmin o cualquier inicio de sesión con el permiso ALTER ANY CONNECTION puede usar el comando KILL para finalizar una conexión y hacer que el inicio de sesión se vuelva a conectar. SQL Server Management Studio puede reutilizar la información de conexión al abrir varias conexiones en las ventanas del Explorador de objetos y del Editor de consultas. Cierre todas las conexiones para forzar una reconexión.

OLD_PASSWORD ='oldpassword' Se aplica solo a los inicios de sesión de SQL Server. La contraseña actual del inicio de sesión al que se va a asignar una contraseña nueva. En las contraseñas se distingue entre mayúsculas y minúsculas.

NAME = login_name El nombre nuevo del inicio de sesión al que se está cambiando el nombre. Si se trata de un inicio de sesión de Windows, el SID de la entidad de seguridad de Windows correspondiente al nombre nuevo debe coincidir con el SID asociado al inicio de sesión en SQL Server. El nombre nuevo de un inicio de sesión de SQL Server no puede contener un carácter de barra diagonal inversa (\).

Observaciones

En SQL Database, los datos de inicio de sesión necesarios para autenticar una conexión y reglas de firewall de nivel de servidor se almacenan temporalmente en caché en cada base de datos. Esta caché se actualiza regularmente. Para forzar una actualización de la caché de autenticación y garantizar que una base de datos tenga la versión más reciente de la tabla de inicios de sesión, ejecute DBCC FLUSHAUTHCACHE.

Permisos

Requiere el permiso ALTER ANY LOGIN.

Si el inicio de sesión que se está cambiado es un miembro del rol fijo de servidor sysadmin o tiene concedido el permiso CONTROL SERVER, también será necesario el permiso CONTROL SERVER para realizar los cambios siguientes:

  • Restablecer la contraseña sin proporcionar la antigua.
  • Cambiar el nombre de inicio de sesión.
  • Habilitar o deshabilitar el inicio de sesión.
  • Asignar el inicio de sesión a una credencial diferente.

Una entidad de seguridad puede cambiar la contraseña de su propio inicio de sesión.

Ejemplos

En estos ejemplos también se incluyen ejemplos de uso de otros productos SQL. Más arriba puede ver los argumentos que se admiten.

A. Habilitar un inicio de sesión deshabilitado

En el ejemplo siguiente se habilita el inicio de sesión Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Cambiar la contraseña de un inicio de sesión

En el ejemplo siguiente se cambia la contraseña del inicio de sesión Mary5 a una contraseña segura.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Cambiar el nombre de un inicio de sesión

En el ejemplo siguiente se cambia el nombre del inicio de sesión Mary5 a John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Asignar un inicio de sesión a una credencial

En el ejemplo siguiente se asigna el inicio de sesión John2 a la credencial Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Asignar un inicio de sesión a una credencial de Administración de claves extensible

En el ejemplo siguiente se asigna el inicio de sesión Mary5 a la credencial EKM EKMProvider1.

Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F. Desbloquear un inicio de sesión

Para desbloquear un inicio de sesión de SQL Server, ejecute la instrucción siguiente y sustituya **** por la contraseña de cuenta deseada.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK ;
GO

G. Cambiar la contraseña de un inicio de sesión utilizando HASHED

En el ejemplo siguiente se cambia la contraseña de inicio de sesión de TestUser a un valor que ya tiene aplicado hash.

Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Consulte también

* Analytics
Platform System (PDW) *

 

Sistema de la plataforma de análisis

Sintaxis

-- Syntax for Analytics Platform System

ALTER LOGIN login_name
    {
    <status_option>
    | WITH <set_option> [ ,... ]
    }

<status_option> ::=ENABLE | DISABLE

<set_option> ::=
    PASSWORD ='password'
    [
      OLD_PASSWORD ='oldpassword'
      | <password_option> [<password_option> ]
    ]
    | NAME = login_name
    | CHECK_POLICY = { ON | OFF }
    | CHECK_EXPIRATION = { ON | OFF }

<password_option> ::=
    MUST_CHANGE | UNLOCK

Argumentos

login_name Especifica el nombre del inicio de sesión de SQL Server que se está cambiando. Los inicios de sesión del dominio se deben incluir entre corchetes con el formato [dominio\usuario].

ENABLE | DISABLE Habilita o deshabilita este inicio de sesión. Deshabilitar un inicio de sesión no afecta al comportamiento de los inicios de sesión que ya están conectados. (Use la instrucción KILL para finalizar una conexión existente). Los inicios de sesión deshabilitados conservan sus permisos y pueden seguir siendo suplantados.

PASSWORD ='password' Se aplica solo a los inicios de sesión de SQL Server. Especifica la contraseña del inicio de sesión que se está cambiando. En las contraseñas se distingue entre mayúsculas y minúsculas.

Importante

Cuando un inicio de sesión (o un usuario de base de datos independiente) se conecta y se autentica, la conexión almacena en memoria caché información de identidad del inicio de sesión. Para un inicio de sesión con autenticación de Windows, esto incluye la información sobre la pertenencia a grupos de Windows. La identidad del inicio de sesión permanecerá autenticada mientras dure la conexión. Para aplicar cambios en la identidad, como un cambio o restablecimiento de contraseña de la pertenencia al grupo de Windows, el inicio de sesión debe cerrar sesión en la entidad de autenticación (Windows o SQL Server) y volver a iniciarla. Los miembros del rol fijo de servidor sysadmin o cualquier inicio de sesión con el permiso ALTER ANY CONNECTION puede usar el comando KILL para finalizar una conexión y hacer que el inicio de sesión se vuelva a conectar. SQL Server Management Studio puede reutilizar la información de conexión al abrir varias conexiones en las ventanas del Explorador de objetos y del Editor de consultas. Cierre todas las conexiones para forzar una reconexión.

OLD_PASSWORD ='oldpassword' Se aplica solo a los inicios de sesión de SQL Server. La contraseña actual del inicio de sesión al que se va a asignar una contraseña nueva. En las contraseñas se distingue entre mayúsculas y minúsculas.

MUST_CHANGE Solo se aplica a inicios de sesión de SQL Server. Si se incluye esta opción, SQL Server pedirá la contraseña actualizada la primera vez que se utilice el inicio de sesión modificado.

NAME = login_name El nombre nuevo del inicio de sesión al que se está cambiando el nombre. Si se trata de un inicio de sesión de Windows, el SID de la entidad de seguridad de Windows correspondiente al nombre nuevo debe coincidir con el SID asociado al inicio de sesión en SQL Server. El nombre nuevo de un inicio de sesión de SQL Server no puede contener un carácter de barra diagonal inversa (\).

CHECK_EXPIRATION = { ON | OFF } Se aplica solo a los inicios de sesión de SQL Server. Especifica si debe aplicarse la directiva de caducidad de contraseñas en este inicio de sesión. El valor predeterminado es OFF.

CHECK_POLICY = { ON | OFF } Se aplica solo a los inicios de sesión de SQL Server. Especifica que se deben aplicar las directivas de contraseñas de Windows en el equipo en el que se ejecuta SQL Server para este inicio de sesión. El valor predeterminado es ON.

UNLOCK Solo se aplica a inicios de sesión de SQL Server. Especifica que un inicio de sesión bloqueado debe desbloquearse.

Observaciones

Cuando CHECK_POLICY se establece en ON, no puede utilizarse el argumento HASHED.

Cuando el valor de CHECK_POLICY se cambia a ON, ocurre lo siguiente:

  • El historial de contraseñas se inicializa con el valor del hash de contraseña actual.

    Cuando el valor de CHECK_POLICY se cambia a OFF, ocurre lo siguiente:

  • La opción CHECK_EXPIRATION también se cambia a OFF.

  • Se borra el historial de contraseñas.

  • El valor de lockout_time se restablece.

Si se especifica MUST_CHANGE, CHECK_EXPIRATION y CHECK_POLICY, deben establecerse en ON. Si no es así, la instrucción producirá un error.

Si CHECK_POLICY se establece en OFF, CHECK_EXPIRATION no puede establecerse en ON. Una instrucción ALTER LOGIN con esta combinación de opciones dará error.

No puede usar ALTER_LOGIN con el argumento DISABLE para denegar el acceso a un grupo de Windows. es así por diseño. Por ejemplo, ALTER_LOGIN [domain\group] DISABLE devolverá el siguiente mensaje de error:

"Msg 15151, Level 16, State 1, Line 1 "Cannot alter the login '*Domain\Group*', because it does not exist or you do not have permission."

En SQL Database, los datos de inicio de sesión necesarios para autenticar una conexión y reglas de firewall de nivel de servidor se almacenan temporalmente en caché en cada base de datos. Esta caché se actualiza regularmente. Para forzar una actualización de la caché de autenticación y garantizar que una base de datos tenga la versión más reciente de la tabla de inicios de sesión, ejecute DBCC FLUSHAUTHCACHE.

Permisos

Requiere el permiso ALTER ANY LOGIN.

Si se utiliza la opción CREDENTIAL, también será necesario el permiso ALTER ANY CREDENTIAL.

Si el inicio de sesión que se está cambiado es un miembro del rol fijo de servidor sysadmin o tiene concedido el permiso CONTROL SERVER, también será necesario el permiso CONTROL SERVER para realizar los cambios siguientes:

  • Restablecer la contraseña sin proporcionar la antigua.
  • Habilitar MUST_CHANGE, CHECK_POLICY o CHECK_EXPIRATION.
  • Cambiar el nombre de inicio de sesión.
  • Habilitar o deshabilitar el inicio de sesión.
  • Asignar el inicio de sesión a una credencial diferente.

Una entidad de seguridad puede cambiar la contraseña, el idioma predeterminado y la base de datos predeterminada para su propio inicio de sesión.

Ejemplos

En estos ejemplos también se incluyen ejemplos de uso de otros productos SQL. Más arriba puede ver los argumentos que se admiten.

A. Habilitar un inicio de sesión deshabilitado

En el ejemplo siguiente se habilita el inicio de sesión Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Cambiar la contraseña de un inicio de sesión

En el ejemplo siguiente se cambia la contraseña del inicio de sesión Mary5 a una contraseña segura.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Cambiar el nombre de un inicio de sesión

En el ejemplo siguiente se cambia el nombre del inicio de sesión Mary5 a John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Asignar un inicio de sesión a una credencial

En el ejemplo siguiente se asigna el inicio de sesión John2 a la credencial Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Asignar un inicio de sesión a una credencial de Administración de claves extensible

En el ejemplo siguiente se asigna el inicio de sesión Mary5 a la credencial EKM EKMProvider1.

Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F. Desbloquear un inicio de sesión

Para desbloquear un inicio de sesión de SQL Server, ejecute la instrucción siguiente y sustituya **** por la contraseña de cuenta deseada.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK ;

GO

Para desbloquear un inicio de sesión sin cambiar la contraseña, desactive la directiva de comprobación y, a continuación, inicie sesión de nuevo.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;
ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Cambiar la contraseña de un inicio de sesión utilizando HASHED

En el ejemplo siguiente se cambia la contraseña de inicio de sesión de TestUser a un valor que ya tiene aplicado hash.

Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Consulte también