ALTER LOGIN (Transact-SQL)

Actualizado: 12 de diciembre de 2006

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

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

ALTER LOGIN login_name 
    { 
    <status_option> 
    | WITH <set_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

Argumentos

  • login_name
    Especifica el nombre del inicio de sesión de SQL Server que se está cambiando.
  • ENABLE | DISABLE
    Habilita o deshabilita este inicio de sesión.
  • PASSWORD = 'password'
    Sólo 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
    Sólo se aplica a la palabra clave HASHED. Especifica el valor con algoritmo hash para la contraseña del inicio de sesión que se crea.
  • HASHED
    Sólo 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.

    [!NOTA] Este argumento sólo funciona con valores hash generados por SQL Server 2000 o versiones posteriores.

  • OLD_PASSWORD ='oldpassword'
    Sólo 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
    Sólo 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.
  • 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 }
    Sólo se aplica a inicios de sesión de SQL Server. Especifica si debe cumplirse la directiva de caducidad de contraseñas en este inicio de sesión. El valor predeterminado es OFF.
  • CHECK_POLICY = { ON | OFF }
    Sólo 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
    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.
  • NO CREDENTIAL
    Elimina cualquier asignación existente del inicio de sesión a una credencial de servidor. Para obtener más información, vea Credenciales.
  • UNLOCK
    Sólo se aplica a inicios de sesión de SQL Server. Especifica que un inicio de sesión bloqueado debe desbloquearse.

Notas

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:

  • CHECK_EXPIRATION también se cambia a ON, a no ser que se establezca explícitamente en OFF.
  • 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.

ms189828.note(es-es,SQL.90).gifImportante:
CHECK_EXPIRATION y CHECK_POLICY sólo se aplican en y versiones posteriores. Para obtener más información, vea Directiva de contraseñas.
ms189828.note(es-es,SQL.90).gifImportante:
Un problema conocido de puede impedir que el recuento de contraseñas erróneas se restablezca una vez alcanzado el umbral de bloqueo de cuentas. Esto podría causar un bloqueo inmediato de los siguientes intentos de inicio de sesión erróneos. Puede restablecer manualmente el recuento de contraseñas incorrectas; para ello, establezca CHECK_POLICY = OFF, seguido de CHECK_POLICY = ON. Para obtener más información acerca del umbral de bloqueo de cuentas, vea el artículo 818078 de Microsoft Knowledge Base acerca del bloqueo prematuro de cuentas de usuario.

No puede usar ALTER_LOGIN con el argumento DISABLE para denegar el acceso a un grupo de Windows. Por ejemplo, ALTER_LOGIN [dominio\grupo] 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 'Dominio\Grupo' porque no existe o no tiene permisos."

Esto es así por cuestiones de 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 va a modificar tiene concedido el permiso CONTROL SERVER, también será necesario el permiso CONTROL SERVER al 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 Mary5.

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 Joe2.

ALTER LOGIN Mary5 WITH NAME = Joe2;

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

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

ALTER LOGIN Joe2 WITH CREDENTIAL = Custodian04;

Vea también

Referencia

CREATE LOGIN (Transact-SQL)
DROP LOGIN (Transact-SQL)
CREATE CREDENTIAL (Transact-SQL)
EVENTDATA (Transact-SQL)

Otros recursos

Credenciales

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

12 de diciembre de 2006

Contenido nuevo:
  • Se ha agregado información acerca del argumento HASHED.
  • Se ha agregado información acerca de cómo usar el argumento DISABLE para impedir el acceso a un grupo de Windows.