Compartir a través de


ALTER LOGIN (Transact-SQL)

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

Transact-SQL convenciones de sintaxis

Nota

microsoft Entra ID 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 interesa y solo se muestra la información del producto.

* SQL Server *  

de instancia administrada de SQL

Plataforma de Analytics
del sistema (PDW)

 

SQL Server

Sintaxis para 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 va a cambiar. Los inicios de sesión de dominio deben incluirse entre corchetes en el formato [<domain>\<user>].

ENABLE | INUTILIZAR

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 todavía se pueden suplantar.

PASSWORD = 'contraseña'

Solo se aplica a los inicios de sesión de SQL Server. Especifica la contraseña del inicio de sesión que se va a cambiar. Las contraseñas distinguen mayúsculas de minúsculas.

PASSWORD = hashed_password

Solo se aplica a la palabra clave HASHED. Especifica el valor hash de la contraseña para el inicio de sesión que se va a crear.

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 caché la información de identidad sobre el inicio de sesión. Para un inicio de sesión de autenticación de Windows, esto incluye información sobre la pertenencia a grupos de Windows. La identidad del inicio de sesión permanece autenticada siempre que se mantenga la conexión. Para forzar los cambios en la identidad, como un restablecimiento de contraseña o un cambio en la pertenencia a grupos de Windows, el inicio de sesión debe cerrar sesión desde la entidad de autenticación (Windows o SQL Server) e iniciar sesión de nuevo. Un miembro del sysadmin rol fijo de servidor o cualquier inicio de sesión con el permiso ALTER ANY CONNECTION puede usar el comando KILL para finalizar una conexión y forzar a un inicio de sesión para volver a conectarse. SQL Server Management Studio puede reutilizar la información de conexión al abrir varias conexiones al Explorador de objetos y a las ventanas del Editor de consultas. Cierre todas las conexiones para forzar la reconexión.

HASH

Solo se aplica a los inicios de sesión de SQL Server. Especifica que la contraseña especificada después del argumento PASSWORD ya está hash. Si esta opción no está seleccionada, la contraseña se aplica un hash antes de almacenarse en la base de datos. Esta opción solo debe usarse para la sincronización de inicio de sesión entre dos servidores. No use la opción HASHED para cambiar las contraseñas de forma rutinaria.

OLD_PASSWORD = "old_password"

Solo se aplica a los inicios de sesión de SQL Server. Contraseña actual del inicio de sesión al que se asignará una nueva contraseña. Las contraseñas distinguen mayúsculas de minúsculas.

MUST_CHANGE

Solo se aplica a los inicios de sesión de SQL Server. Si se incluye esta opción, SQL Server solicita una contraseña actualizada la primera vez que se usa el inicio de sesión modificado.

DEFAULT_DATABASE = de base de datos de

Especifica una base de datos predeterminada que se asignará al inicio de sesión.

DEFAULT_LANGUAGE = de idioma de

Especifica un idioma predeterminado que se asignará al inicio de sesión. El idioma predeterminado para todos los inicios de sesión de SQL Database es inglés y no se puede cambiar. El idioma predeterminado del inicio de sesión de sa en SQL Server en Linux es inglés, pero se puede cambiar.

NAME = login_name

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

CHECK_EXPIRATION = { ON | OFF }

Solo se aplica a los inicios de sesión de SQL Server. Especifica si se debe aplicar la directiva de expiración de contraseñas en este inicio de sesión. El valor predeterminado es OFF.

CHECK_POLICY = { ON | OFF }

Solo se aplica a los inicios de sesión de SQL Server. Especifica que las directivas de contraseña de Windows del equipo en el que se ejecuta SQL Server deben aplicarse en este inicio de sesión. El valor predeterminado es ON.

CREDENTIAL = credential_name

Nombre de una credencial que se va a asignar a un inicio de sesión de SQL Server. La credencial ya debe existir en el servidor. Para obtener más información, consulte credenciales. No se puede asignar una credencial al inicio de sesión sa.

SIN CREDENCIAL

Quita cualquier asignación existente del inicio de sesión a una credencial de servidor. Para obtener más información, consulte credenciales.

ABRIR

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

AGREGAR CREDENCIAL

Agrega una credencial de proveedor de administración extensible de claves (EKM) al inicio de sesión. Para obtener más información, consulte administración extensible de claves (EKM).

DROP CREDENTIAL

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

Observaciones

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

Cuando se cambia CHECK_POLICY a ON, se produce el siguiente comportamiento:

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

Cuando se cambia CHECK_POLICY a OFF, se produce el siguiente comportamiento:

  • CHECK_EXPIRATION también se establece en OFF.
  • Se borra el historial de contraseñas.
  • Se restablece el valor de lockout_time.

Si se especifica MUST_CHANGE, CHECK_EXPIRATION y CHECK_POLICY deben establecerse en ACTIVADO. De lo contrario, se produce un error en la instrucción .

Si CHECK_POLICY está establecido en OFF, CHECK_EXPIRATION no se puede establecer en ACTIVADO. Se produce un error en una instrucción ALTER LOGIN que tenga esta combinación de opciones.

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 devuelve el siguiente mensaje de error:

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

Esto es por diseño.

En SQL Database, los datos de inicio de sesión necesarios para autenticar una conexión y las reglas de firewall de nivel de servidor se almacenan temporalmente en caché en cada base de datos. Esta memoria caché se actualiza periódicamente. Para forzar una actualización de la caché de autenticación y asegurarse de que una base de datos tiene 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 usa la opción CREDENTIAL, también requiere el permiso ALTER ANY CREDENTIAL.

Si el inicio de sesión que se va a cambiar es miembro del sysadmin rol fijo de servidor o un receptor del permiso CONTROL SERVER, también requiere el permiso CONTROL SERVER al realizar los cambios siguientes:

  • Restablecer la contraseña sin proporcionar la contraseña antigua.
  • Habilitación de MUST_CHANGE, CHECK_POLICY o CHECK_EXPIRATION.
  • Cambiar el nombre de inicio de sesión.
  • Habilitación o deshabilitación del inicio de sesión.
  • Asignación del 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

Un. Habilitación de 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 de inicio de sesión Mary5 a una contraseña segura.

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

C. Cambiar la contraseña de un inicio de sesión al iniciar sesión como inicio de sesión

Si está intentando 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. Asignación de 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. Asignación de un inicio de sesión a una credencial de administración extensible de claves

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, reemplazando **** 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 vuelva a activarla.

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

G. Cambio de la contraseña de un inicio de sesión mediante HASHED

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

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

* SQL Database *

de instancia administrada de SQL

Plataforma de Analytics
del sistema (PDW)

 

SQL Database

Sintaxis de 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 va a cambiar. Los inicios de sesión de dominio deben incluirse entre corchetes en el formato [dominio\usuario].

ENABLE | INUTILIZAR

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 todavía se pueden suplantar.

PASSWORD = 'contraseña'

Solo se aplica a los inicios de sesión de SQL Server. Especifica la contraseña del inicio de sesión que se va a cambiar. Las contraseñas distinguen mayúsculas de minúsculas.

Las conexiones activas continuamente a SQL Database requieren la reautenticación (realizada por el motor de base de datos) al menos cada 10 horas. El motor de base de datos intenta volver a autorizar mediante la contraseña enviada originalmente y no se requiere ninguna entrada de usuario. Por motivos de rendimiento, cuando se restablece una contraseña en SQL Database, la conexión no se vuelve a autenticar, incluso si la conexión se restablece debido a la agrupación de conexiones. Esto es diferente del comportamiento de SQL Server local. Si la contraseña ha cambiado desde que se autorizó inicialmente la conexión, la conexión debe finalizarse y una nueva conexión realizada con la nueva contraseña. Un usuario con el permiso KILL DATABASE CONNECTION puede finalizar explícitamente una conexión a 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 caché la información de identidad sobre el inicio de sesión. Para un inicio de sesión de autenticación de Windows, esto incluye información sobre la pertenencia a grupos de Windows. La identidad del inicio de sesión permanece autenticada siempre que se mantenga la conexión. Para forzar los cambios en la identidad, como un restablecimiento de contraseña o un cambio en la pertenencia a grupos de Windows, el inicio de sesión debe cerrar sesión desde la entidad de autenticación (Windows o SQL Server) e iniciar sesión de nuevo. Un miembro del sysadmin rol fijo de servidor o cualquier inicio de sesión con el permiso ALTER ANY CONNECTION puede usar el comando KILL para finalizar una conexión y forzar un inicio de sesión para volver a conectarse. SQL Server Management Studio puede reutilizar la información de conexión al abrir varias conexiones al Explorador de objetos y a las ventanas del Editor de consultas. Cierre todas las conexiones para forzar la reconexión.

OLD_PASSWORD = "old_password"

Solo se aplica a los inicios de sesión de SQL Server. Contraseña actual del inicio de sesión al que se asignará una nueva contraseña. Las contraseñas distinguen mayúsculas de minúsculas.

NAME = login_name

Nuevo nombre del inicio de sesión al que se va a cambiar el nombre. Si se trata de un inicio de sesión de Windows, el SID de la entidad de seguridad de Windows correspondiente al nuevo nombre debe coincidir con el SID asociado al inicio de sesión en SQL Server. El nuevo nombre 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 las reglas de firewall de nivel de servidor se almacenan temporalmente en caché en cada base de datos. Esta memoria caché se actualiza periódicamente. Para forzar una actualización de la caché de autenticación y asegurarse de que una base de datos tiene 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 va a cambiar es miembro del sysadmin rol fijo de servidor o un receptor del permiso CONTROL SERVER, también requiere el permiso CONTROL SERVER al realizar los cambios siguientes:

  • Restablecer la contraseña sin proporcionar la contraseña antigua.
  • Cambiar el nombre de inicio de sesión.
  • Habilitación o deshabilitación del inicio de sesión.
  • Asignación del inicio de sesión a una credencial diferente.

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

Ejemplos

Estos ejemplos también incluyen ejemplos para usar otros productos SQL. Vea qué argumentos anteriores se admiten.

Un. Habilitación de 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 de 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. Asignación de 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. Asignación de un inicio de sesión a una credencial de administración extensible de claves

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. Cambio de la contraseña de un inicio de sesión mediante HASHED

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

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

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

* Instancia administrada de SQL *

Plataforma de Analytics
del sistema (PDW)

 

Instancia administrada de Azure SQL

Sintaxis de SQL Server e Instancia administrada de Azure SQL

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 va a cambiar. 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 existente de Microsoft Entra creado en la base de datos de master.

ENABLE | INUTILIZAR

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 todavía se pueden suplantar.

DEFAULT_DATABASE = de base de datos de

Especifica una base de datos predeterminada que se asignará al inicio de sesión.

DEFAULT_LANGUAGE = de idioma de

Especifica un idioma predeterminado que se asignará al inicio de sesión. El idioma predeterminado para todos los inicios de sesión de SQL Database es inglés y no se puede cambiar. El idioma predeterminado del inicio de sesión de sa en SQL Server en Linux es inglés, pero se puede cambiar.

Argumentos aplicables solo a inicios de sesión de SQL

PASSWORD = 'contraseña'

Solo se aplica a los inicios de sesión de SQL Server. Especifica la contraseña del inicio de sesión que se va a cambiar. Las contraseñas distinguen mayúsculas de 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 activas continuamente a SQL Database requieren la reautenticación (realizada por el motor de base de datos) al menos cada 10 horas. El motor de base de datos intenta volver a autorizar mediante la contraseña enviada originalmente y no se requiere ninguna entrada de usuario. Por motivos de rendimiento, cuando se restablece una contraseña en SQL Database, la conexión no se vuelve a autenticar, incluso si la conexión se restablece debido a la agrupación de conexiones. Esto es diferente del comportamiento de SQL Server local. Si la contraseña ha cambiado desde que se autorizó inicialmente la conexión, la conexión debe finalizarse y una nueva conexión realizada con la nueva contraseña. Un usuario con el permiso KILL DATABASE CONNECTION puede finalizar explícitamente una conexión a SQL Database mediante el comando KILL. Para obtener más información, vea KILL.

PASSWORD = hashed_password

Solo se aplica a la palabra clave HASHED. Especifica el valor hash de la contraseña para el inicio de sesión que se va a crear.

HASH

Solo se aplica a los inicios de sesión de SQL Server. Especifica que la contraseña especificada después del argumento PASSWORD ya está hash. Si esta opción no está seleccionada, la contraseña se aplica un hash antes de almacenarse en la base de datos. Esta opción solo debe usarse para la sincronización de inicio de sesión entre dos servidores. No use la opción HASHED para cambiar las contraseñas de forma rutinaria.

OLD_PASSWORD = "old_password"

Solo se aplica a los inicios de sesión de SQL Server. Contraseña actual del inicio de sesión al que se asignará una nueva contraseña. Las contraseñas distinguen mayúsculas de minúsculas.

MUST_CHANGE

Solo se aplica a los inicios de sesión de SQL Server. Si se incluye esta opción, SQL Server solicita una contraseña actualizada la primera vez que se usa el inicio de sesión modificado.

NAME = login_name

Nuevo nombre del inicio de sesión al que se va a cambiar el nombre. Si el inicio de sesión es un inicio de sesión de Windows, el SID de la entidad de seguridad de Windows correspondiente al nuevo nombre debe coincidir con el SID asociado al inicio de sesión en SQL Server. El nuevo nombre de un inicio de sesión de SQL Server no puede contener un carácter de barra diagonal inversa (\).

CHECK_EXPIRATION = { ON | OFF }

Solo se aplica a los inicios de sesión de SQL Server. Especifica si se debe aplicar la directiva de expiración de contraseñas en este inicio de sesión. El valor predeterminado es OFF.

CHECK_POLICY = { ON | OFF }

Solo se aplica a los inicios de sesión de SQL Server. Especifica que las directivas de contraseña de Windows del equipo en el que se ejecuta SQL Server deben aplicarse en este inicio de sesión. El valor predeterminado es ON.

CREDENTIAL = credential_name

Nombre de una credencial que se va a asignar a un inicio de sesión de SQL Server. La credencial ya debe existir en el servidor. Para obtener más información, consulte credenciales. No se puede asignar una credencial al inicio de sesión sa.

SIN CREDENCIAL

Quita cualquier asignación existente del inicio de sesión a una credencial de servidor. Para obtener más información, consulte credenciales.

ABRIR

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

AGREGAR CREDENCIAL

Agrega una credencial de proveedor de administración extensible de claves (EKM) al inicio de sesión. Para obtener más información, consulte administración extensible de claves (EKM).

DROP CREDENTIAL

Quita una credencial de proveedor de administración extensible de claves (EKM) del inicio de sesión. Para obtener más información, consulte administración extensible de claves (EKM).

Observaciones

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

Cuando se cambia CHECK_POLICY a ON, se produce el siguiente comportamiento:

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

Cuando se cambia CHECK_POLICY a OFF, se produce el siguiente comportamiento:

  • CHECK_EXPIRATION también se establece en OFF.
  • Se borra el historial de contraseñas.
  • Se restablece el valor de lockout_time.

Si se especifica MUST_CHANGE, CHECK_EXPIRATION y CHECK_POLICY deben establecerse en ACTIVADO. De lo contrario, se produce un error en la instrucción .

Si CHECK_POLICY está establecido en OFF, CHECK_EXPIRATION no se puede establecer en ACTIVADO. Se produce un error en una instrucción ALTER LOGIN que tenga esta combinación de opciones.

No puede usar ALTER_LOGIN con el argumento DISABLE para denegar el acceso a un grupo de Windows. Esto es por diseño. Por ejemplo, ALTER_LOGIN [dominio\grupo] DISABLE devuelve el siguiente mensaje de error:

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

En SQL Database, los datos de inicio de sesión necesarios para autenticar una conexión y las reglas de firewall de nivel de servidor se almacenan temporalmente en caché en cada base de datos. Esta memoria caché se actualiza periódicamente. Para forzar una actualización de la caché de autenticación y asegurarse de que una base de datos tiene 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 usa la opción CREDENTIAL, también requiere el permiso ALTER ANY CREDENTIAL.

Si el inicio de sesión que se va a cambiar es miembro del sysadmin rol fijo de servidor o un receptor del permiso CONTROL SERVER, también requiere el permiso CONTROL SERVER al realizar los cambios siguientes:

  • Restablecer la contraseña sin proporcionar la contraseña antigua.
  • Habilitación de MUST_CHANGE, CHECK_POLICY o CHECK_EXPIRATION.
  • Cambiar el nombre de inicio de sesión.
  • Habilitación o deshabilitación del inicio de sesión.
  • Asignación del 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 privilegios de sysadmin puede ejecutar un comando ALTER LOGIN en un inicio de sesión de Microsoft Entra.

Ejemplos

Estos ejemplos también incluyen ejemplos para usar otros productos SQL. Vea qué argumentos anteriores se admiten.

Un. Habilitación de 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 de 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. Asignación de 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. Asignación de un inicio de sesión a una credencial de administración extensible de claves

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, reemplazando **** 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 vuelva a activarla.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;

ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Cambio de la contraseña de un inicio de sesión mediante HASHED

En el ejemplo siguiente se cambia la contraseña del inicio de sesión de TestUser a un valor 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. Deshabilitar el 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;

de instancia administrada de SQL

* Azure Synapse
Análisis *

Plataforma de Analytics
del sistema (PDW)

 

Azure Synapse Analytics

Sintaxis para 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 va a cambiar. Los inicios de sesión de dominio deben incluirse entre corchetes en el formato [dominio\usuario].

ENABLE | INUTILIZAR

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 todavía se pueden suplantar.

PASSWORD = 'contraseña'

Solo se aplica a los inicios de sesión de SQL Server. Especifica la contraseña del inicio de sesión que se va a cambiar. Las contraseñas distinguen mayúsculas de minúsculas.

Las conexiones activas continuamente a SQL Database requieren la reautenticación (realizada por el motor de base de datos) al menos cada 10 horas. El motor de base de datos intenta volver a autorizar mediante la contraseña enviada originalmente y no se requiere ninguna entrada de usuario. Por motivos de rendimiento, cuando se restablece una contraseña en SQL Database, la conexión no se vuelve a autenticar, incluso si la conexión se restablece debido a la agrupación de conexiones. Esto es diferente del comportamiento de SQL Server local. Si la contraseña ha cambiado desde que se autorizó inicialmente la conexión, la conexión debe finalizarse y una nueva conexión realizada con la nueva contraseña. Un usuario con el permiso KILL DATABASE CONNECTION puede finalizar explícitamente una conexión a 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 caché la información de identidad sobre el inicio de sesión. Para un inicio de sesión de autenticación de Windows, esto incluye información sobre la pertenencia a grupos de Windows. La identidad del inicio de sesión permanece autenticada siempre que se mantenga la conexión. Para forzar los cambios en la identidad, como un restablecimiento de contraseña o un cambio en la pertenencia a grupos de Windows, el inicio de sesión debe cerrar sesión desde la entidad de autenticación (Windows o SQL Server) e iniciar sesión de nuevo. Un miembro del sysadmin rol fijo de servidor o cualquier inicio de sesión con el permiso ALTER ANY CONNECTION puede usar el comando KILL para finalizar una conexión y forzar un inicio de sesión para volver a conectarse. SQL Server Management Studio puede reutilizar la información de conexión al abrir varias conexiones al Explorador de objetos y a las ventanas del Editor de consultas. Cierre todas las conexiones para forzar la reconexión.

OLD_PASSWORD = "old_password"

Solo se aplica a los inicios de sesión de SQL Server. Contraseña actual del inicio de sesión al que se asignará una nueva contraseña. Las contraseñas distinguen mayúsculas de minúsculas.

NAME = login_name

Nuevo nombre del inicio de sesión al que se va a cambiar el nombre. Si se trata de un inicio de sesión de Windows, el SID de la entidad de seguridad de Windows correspondiente al nuevo nombre debe coincidir con el SID asociado al inicio de sesión en SQL Server. El nuevo nombre 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 las reglas de firewall de nivel de servidor se almacenan temporalmente en caché en cada base de datos. Esta memoria caché se actualiza periódicamente. Para forzar una actualización de la caché de autenticación y asegurarse de que una base de datos tiene 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 va a cambiar es miembro del sysadmin rol fijo de servidor o un receptor del permiso CONTROL SERVER, también requiere el permiso CONTROL SERVER al realizar los cambios siguientes:

  • Restablecer la contraseña sin proporcionar la contraseña antigua.
  • Cambiar el nombre de inicio de sesión.
  • Habilitación o deshabilitación del inicio de sesión.
  • Asignación del inicio de sesión a una credencial diferente.

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

Ejemplos

Estos ejemplos también incluyen ejemplos para usar otros productos SQL. Vea qué argumentos anteriores se admiten.

Un. Habilitación de 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 de 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. Asignación de 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. Asignación de un inicio de sesión a una credencial de administración extensible de claves

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, reemplazando **** por la contraseña de cuenta deseada.

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

G. Cambio de la contraseña de un inicio de sesión mediante HASHED

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

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

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

de instancia administrada de SQL

* Analytics
Sistema de plataforma (PDW) *

 

Analytics Platform System

Sintaxis para 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 va a cambiar. Los inicios de sesión de dominio deben incluirse entre corchetes en el formato [dominio\usuario].

ENABLE | INUTILIZAR

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 todavía se pueden suplantar.

PASSWORD = 'contraseña'

Solo se aplica a los inicios de sesión de SQL Server. Especifica la contraseña del inicio de sesión que se va a cambiar. Las contraseñas distinguen mayúsculas de 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 caché la información de identidad sobre el inicio de sesión. Para un inicio de sesión de autenticación de Windows, esto incluye información sobre la pertenencia a grupos de Windows. La identidad del inicio de sesión permanece autenticada siempre que se mantenga la conexión. Para forzar los cambios en la identidad, como un restablecimiento de contraseña o un cambio en la pertenencia a grupos de Windows, el inicio de sesión debe cerrar sesión desde la entidad de autenticación (Windows o SQL Server) e iniciar sesión de nuevo. Un miembro del sysadmin rol fijo de servidor o cualquier inicio de sesión con el permiso ALTER ANY CONNECTION puede usar el comando KILL para finalizar una conexión y forzar un inicio de sesión para volver a conectarse. SQL Server Management Studio puede reutilizar la información de conexión al abrir varias conexiones al Explorador de objetos y a las ventanas del Editor de consultas. Cierre todas las conexiones para forzar la reconexión.

OLD_PASSWORD = "old_password"

Solo se aplica a los inicios de sesión de SQL Server. Contraseña actual del inicio de sesión al que se asignará una nueva contraseña. Las contraseñas distinguen mayúsculas de minúsculas.

MUST_CHANGE

Solo se aplica a los inicios de sesión de SQL Server. Si se incluye esta opción, SQL Server solicita una contraseña actualizada la primera vez que se usa el inicio de sesión modificado.

NAME = login_name

Nuevo nombre del inicio de sesión al que se va a cambiar el nombre. Si el inicio de sesión es un inicio de sesión de Windows, el SID de la entidad de seguridad de Windows correspondiente al nuevo nombre debe coincidir con el SID asociado al inicio de sesión en SQL Server. El nuevo nombre de un inicio de sesión de SQL Server no puede contener un carácter de barra diagonal inversa (\).

CHECK_EXPIRATION = { ON | OFF }

Solo se aplica a los inicios de sesión de SQL Server. Especifica si se debe aplicar la directiva de expiración de contraseñas en este inicio de sesión. El valor predeterminado es OFF.

CHECK_POLICY = { ON | OFF }

Solo se aplica a los inicios de sesión de SQL Server. Especifica que las directivas de contraseña de Windows del equipo en el que se ejecuta SQL Server deben aplicarse en este inicio de sesión. El valor predeterminado es ON.

ABRIR

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

Observaciones

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

Cuando se cambia CHECK_POLICY a ON, se produce el siguiente comportamiento:

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

Cuando se cambia CHECK_POLICY a OFF, se produce el siguiente comportamiento:

  • CHECK_EXPIRATION también se establece en OFF.
  • Se borra el historial de contraseñas.
  • Se restablece el valor de lockout_time.

Si se especifica MUST_CHANGE, CHECK_EXPIRATION y CHECK_POLICY deben establecerse en ACTIVADO. De lo contrario, se produce un error en la instrucción .

Si CHECK_POLICY está establecido en OFF, CHECK_EXPIRATION no se puede establecer en ACTIVADO. Se produce un error en una instrucción ALTER LOGIN que tenga esta combinación de opciones.

No puede usar ALTER_LOGIN con el argumento DISABLE para denegar el acceso a un grupo de Windows. Esto es por diseño. Por ejemplo, ALTER_LOGIN [dominio\grupo] DISABLE devuelve el siguiente mensaje de error:

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

En SQL Database, los datos de inicio de sesión necesarios para autenticar una conexión y las reglas de firewall de nivel de servidor se almacenan temporalmente en caché en cada base de datos. Esta memoria caché se actualiza periódicamente. Para forzar una actualización de la caché de autenticación y asegurarse de que una base de datos tiene 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 usa la opción CREDENTIAL, también requiere el permiso ALTER ANY CREDENTIAL.

Si el inicio de sesión que se va a cambiar es miembro del sysadmin rol fijo de servidor o un receptor del permiso CONTROL SERVER, también requiere el permiso CONTROL SERVER al realizar los cambios siguientes:

  • Restablecer la contraseña sin proporcionar la contraseña antigua.
  • Habilitación de MUST_CHANGE, CHECK_POLICY o CHECK_EXPIRATION.
  • Cambiar el nombre de inicio de sesión.
  • Habilitación o deshabilitación del inicio de sesión.
  • Asignación del 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

Estos ejemplos también incluyen ejemplos para usar otros productos SQL. Vea qué argumentos anteriores se admiten.

Un. Habilitación de 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 de 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. Asignación de 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. Asignación de un inicio de sesión a una credencial de administración extensible de claves

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, reemplazando **** 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 vuelva a activarla.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;

ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Cambio de la contraseña de un inicio de sesión mediante HASHED

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

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

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO