ALTER LOGIN (Transact-SQL)
Cambia las propiedades de una cuenta de inicio de sesión de SQL Server.
Convenciones de sintaxis de Transact-SQL
Sintaxis
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. 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
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.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 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
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.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 }
Solo se aplica a inicios de sesión de SQL Server. Especifica si debe cumplirse 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 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 (motor de base de datos). Los 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 obtener más información, vea Credenciales (motor de base de datos).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 obtener 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) 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.
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.
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
Vea también
Referencia
CREATE CREDENTIAL (Transact-SQL)