CREATE LOGIN (Transact-SQL)

Crea un inicio de sesión de SQL Server nuevo.

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

Sintaxis

CREATE LOGIN loginName { WITH <option_list1> | FROM <sources> }

<option_list1> ::= 
    PASSWORD = { 'password' | hashed_password HASHED } [ MUST_CHANGE ]
    [ , <option_list2> [ ,... ] ]

<option_list2> ::=  
    SID = sid
    | DEFAULT_DATABASE = database    
    | DEFAULT_LANGUAGE = language
    | CHECK_EXPIRATION = { ON | OFF}
    | CHECK_POLICY = { ON | OFF}
    | CREDENTIAL = credential_name 

<sources> ::=
    WINDOWS [ WITH <windows_options>[ ,... ] ]
    | CERTIFICATE certname
    | ASYMMETRIC KEY asym_key_name

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

Argumentos

  • loginName
    Especifica el nombre del inicio de sesión que se va a crear. Hay cuatro tipos de inicio de sesión: de SQL Server, de Windows, asignado a un certificado y asignado a una clave asimétrica. Cuando se crean inicios de sesión que se asignan desde una cuenta de dominio de Windows, se debe utilizar el nombre de inicio de sesión de usuario anterior a Windows 2000 con el formato [<nombreDeDominio>\<nombreDeInicioDeSesión>]. No se puede utilizar un UPN con el formato nombreDeInicioDeSesión@nombreDeDominio. Vea el ejemplo D más adelante en este tema.

  • PASSWORD ='password'
    Solamente se aplica a inicios de sesión de SQL Server. Especifica la contraseña del inicio de sesión que se está creando. Debe utilizar siempre una contraseña segura. Para obtener más información, vea Contraseñas seguras.

  • 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
    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 aplicará el algoritmo hash a la cadena especificada como contraseña antes de almacenarla en la base de datos. Esta opción sólo se debería utilizar para migrar las bases de datos de un servidor a otro. No utilice la opción HASHED para crear nuevos inicios de sesión.

  • MUST_CHANGE
    Sólo se aplica a inicios de sesión de SQL Server. Si se incluye esta opción, SQL Server pide al usuario la contraseña nueva la primera vez que se utilice el inicio de sesión nuevo.

  • CREDENTIAL **=**credential_name
    Nombre de una credencial que debe asignarse al nuevo inicio de sesión de SQL Server. La credencial debe existir en la base de datos. Actualmente esta opción sólo vincula la credencial a un inicio de sesión. Esta opción se podría expandir en una versión futura de SQL Server.

  • SID = sid
    Sólo se aplica a inicios de sesión de SQL Server. Especifica el GUID del inicio de sesión de SQL Server nuevo. Si esta opción no se selecciona, SQL Server asigna automáticamente un GUID.

  • DEFAULT_DATABASE **=**database
    Especifica la base de datos predeterminada que debe asignarse al inicio de sesión. Si no se incluye esta opción, la base de datos predeterminada se establece en master.

  • DEFAULT_LANGUAGE **=**language
    Especifica el idioma predeterminado que debe asignarse al inicio de sesión. Si no se incluye esta opción, el idioma predeterminado es el del servidor. Si el idioma predeterminado del servidor se cambia más tarde, el del inicio de sesión se mantiene igual.

  • CHECK_EXPIRATION = { ON | OFF }
    Sólo se aplica a inicios de sesión de SQL Server. Especifica si debe aplicarse la directiva de expiración de contraseñas para 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.

  • WINDOWS
    Especifica que el inicio de sesión se asigna a un inicio de sesión de Windows.

  • CERTIFICATE certname
    Especifica el nombre de un certificado al que asociar este inicio de sesión. Este certificado debe existir en la base de datos maestra.

  • ASYMMETRIC KEY asym_key_name
    Especifica el nombre de una clave asimétrica a la que asociar este inicio de sesión. Esta clave debe existir en la base de datos maestra.

Notas

En las contraseñas se distingue entre mayúsculas y minúsculas.

La aplicación previa del algoritmo hash a las contraseñas sólo se admite en la creación de inicios de SQL Server.

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

No se admite la combinación de CHECK_POLICY = OFF y CHECK_EXPIRATION = ON.

Cuando CHECK_POLICY se establece en OFF, lockout_time se restablece y CHECK_EXPIRATION se establece en OFF.

Nota importanteImportante

CHECK_EXPIRATION y CHECK_POLICY sólo se aplican en Windows Server 2003 y versiones posteriores. Para obtener más información, vea Directiva de contraseñas.

Los inicios de sesión creados con certificados o claves asimétricas sólo se usan para la firma del código. No se pueden utilizar para conectarse a SQL Server. Sólo puede crear un inicio de sesión desde un certificado o clave asimétrica cuando este certificado o clave asimétrica ya exista en la base de datos maestra.

Permisos

Requiere el permiso ALTER ANY LOGIN o ALTER LOGIN en el servidor.

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

Ejemplos

A. Crear un inicio de sesión con una contraseña

El ejemplo siguiente crea un inicio de sesión para un Id. de usuario determinado y le asigna una contraseña. La opción MUST_CHANGE exige a los usuarios que cambien la contraseña la primera vez que se conecten al servidor.

CREATE LOGIN <loginName> WITH PASSWORD = '<enterStrongPasswordHere>' MUST_CHANGE;
GO

B. Crear un inicio de sesión asociado a una credencial

El ejemplo siguiente crea el inicio de sesión para un usuario determinado, utilizando el Id. de usuario. Este inicio de sesión se asigna a la credencial.

CREATE LOGIN <loginName> WITH PASSWORD = '<enterStrongPasswordHere>', 
    CREDENTIAL = <credentialName>;
GO

C. Crear un inicio de sesión desde un certificado

En el ejemplo siguiente se crea un inicio de sesión para un identificador de usuario determinado a partir de un certificado de base de datos master.

USE MASTER;
CREATE CERTIFICATE <certificateName>
    WITH SUBJECT = '<loginName> certificate in master database',
    EXPIRY_DATE = '12/05/2025';
GO
CREATE LOGIN <loginName> FROM CERTIFICATE <certificateName>;
GO

D. Crear un inicio de sesión desde una cuenta de dominio de Windows

El ejemplo siguiente crea un inicio de sesión a partir de una cuenta de dominio de Windows.

CREATE LOGIN [<domainName>\<loginName>] FROM WINDOWS;
GO