Compartir a través de


ALTER LOGIN (Transact-SQL)

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

Se aplica a: SQL Server (SQL Server 2008 a versión actual), Windows Azure SQL Database (Versión inicial a versión actual).

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

-- SQL Server Syntax
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

-- Windows 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. Los inicios de sesión deshabilitados conservan sus permisos y pueden seguir siendo suplantados.

  • PASSWORD ='password'
    Solo se aplica a 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 a: SQL Server 2008 a SQL Server 2014.

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

    Nota de seguridadNota de seguridad

    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 iniciar sesión.Los miembros del rol fijo de servidor sysadmin o cualquier inicio de sesión con el permiso ALTER ANY CONNECTION puede utilizar 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

    Se aplica a: desde SQL Server 2008 hasta SQL Server 2014.

    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 almacenarse en la base de datos. Esta opción se debe utilizar solamente para la sincronización de inicio de sesión entre dos servidores. No utilice la opción HASHED para cambiar las contraseñas de forma habitual.

  • OLD_PASSWORD ='oldpassword'
    Solo se aplica a 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

    Se aplica a: SQL Server 2008 a SQL Server 2014.

    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

    Se aplica a: SQL Server 2008 a SQL Server 2014.

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

  • DEFAULT_LANGUAGE **=**language

    Se aplica a: SQL Server 2008 a SQL Server 2014.

    Especifica el idioma predeterminado que debe asignarse al inicio de sesión.

  • NAME = login_name
    Especifica 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 a: SQL Server 2008 a SQL Server 2014.

    Solo se aplica a 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 a: SQL Server 2008 a SQL Server 2014.

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

  • CREDENTIAL = credential_name

    Se aplica a: SQL Server 2008 a SQL Server 2014.

    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 obtener más información, vea Credenciales (motor de base de datos). Los credenciales no se pueden asignar al inicio de sesión sa.

  • NO CREDENTIAL

    Se aplica a: SQL Server 2008 a SQL Server 2014.

    Elimina cualquier asignación existente del inicio de sesión a una credencial de servidor. Para obtener más información, vea Credenciales (motor de base de datos).

  • UNLOCK

    Se aplica a: SQL Server 2008 a SQL Server 2014.

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

  • ADD CREDENTIAL

    Se aplica a: SQL Server 2008 a SQL Server 2014.

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

  • DROP CREDENTIAL

    Se aplica a: SQL Server 2008 a SQL Server 2014.

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

Comentarios

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.

  • Se restablece el valor de lockout_time.

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

"Mensaje 15151, nivel 16, estado 1, línea 1"

"No se puede modificar el inicio de sesión 'Domain\Group' porque no existe o no tiene permisos".

Es así por diseño.

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.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 a SQL Server 2014.

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

Se aplica a: SQL Server 2008 a SQL Server 2014.

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 a SQL Server 2014.

ALTER LOGIN TestUser WITH 
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Vea también

Referencia

CREATE LOGIN (Transact-SQL)

DROP LOGIN (Transact-SQL)

CREATE CREDENTIAL (Transact-SQL)

EVENTDATA (Transact-SQL)

Conceptos

Credenciales (motor de base de datos)

Administración extensible de claves (EKM)