CREATE LOGIN (Transact-SQL)CREATE LOGIN (Transact-SQL)

Crea un inicio de sesión para SQL Server, SQL Database, Azure Synapse Analytics o bases de datos de Analytics Platform System.Creates a login for SQL Server, SQL Database, Azure Synapse Analytics, or Analytics Platform System databases. Haga clic en una de las pestañas siguientes para obtener la sintaxis, argumentos, comentarios, permisos y ejemplos para una versión concreta.Click one of the following tabs for the syntax, arguments, remarks, permissions, and examples for a particular version.

CREATE LOGIN participa en transacciones.CREATE LOGIN participates in transactions. Si se ejecuta CREATE LOGIN en una transacción y la transacción se revierte, la creación de inicio de sesión se revierte.If CREATE LOGIN is executed within a transaction and the transaction is rolled back, then login creation is rolled back. Si se ejecuta en una transacción, el inicio de sesión creado no se puede usar hasta que se confirma la transacción.If executed within a transaction, the created login cannot be used until the transaction is committed.

Para obtener más información sobre las convenciones de sintaxis, vea Convenciones de sintaxis de Transact-SQL.For more information about the syntax conventions, see Transact-SQL Syntax Conventions.

Haga clic en un producto.Click a product!

En la siguiente fila, haga clic en cualquier nombre de producto que le interese.In the following row, click whichever product name you are interested in. Al hacer clic, en esta página web se muestra otro contenido, adecuado para el producto que seleccione.The click displays different content here on this webpage, appropriate for whichever product you click.

* SQL Server *  * SQL Server *   Grupo de bases de datos elásticas o base de datos única de
SQL Database
SQL Database
single database/elastic pool
Instancia administrada de
SQL Database
SQL Database
managed instance
Azure Synapse
Analytics
Azure Synapse
Analytics
Analytics Platform
System (PDW)
Analytics Platform
System (PDW)

 

SQL ServerSQL Server

SintaxisSyntax

-- Syntax for SQL Server
CREATE LOGIN login_name { 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

ArgumentosArguments

login_name Especifica el nombre del inicio de sesión que se va a crear.login_name Specifies the name of the login that is created. Hay cuatro tipos de inicios de sesión: inicios de sesión de SQL Server, de Windows, asignados a certificados y asignados a claves asimétricas.There are four types of logins: SQL Server logins, Windows logins, certificate-mapped logins, and asymmetric key-mapped logins. Cuando crea inicios de sesión que se asignan desde una cuenta de dominio de Windows, debe utilizar el nombre de inicio de sesión de usuario anterior a Windows 2000 con el formato[<domainName>\<login_name>].When you are creating logins that are mapped from a Windows domain account, you must use the pre-Windows 2000 user logon name in the format [<domainName>\<login_name>]. No puede utilizar un UPN con el formato login_name@DomainName.You cannot use a UPN in the format login_name@DomainName. Vea el ejemplo D más adelante en este artículo.For an example, see example D later in this article. Los inicios de sesión con autenticación son del tipo sysname, deben seguir las reglas de los Identificadores y no pueden contener "\".Authentication logins are type sysname and must conform to the rules for Identifiers and cannot contain a '\'. Los inicios de sesión de Windows pueden contener un carácter '\”.Windows logins can contain a '\'. Los inicios de sesión basados en usuarios de Active Directory se limitan a nombres de menos de 21 caracteres.Logins based on Active Directory users, are limited to names of fewer than 21 characters.

PASSWORD ="contraseña" Solo se aplica a los inicios de sesión de SQL Server.PASSWORD ='password' Applies to SQL Server logins only. Especifica la contraseña del inicio de sesión que se está creando.Specifies the password for the login that is being created. Utilice una contraseña segura.Use a strong password. Para obtener más información, vea Contraseñas seguras y Directiva de contraseñas.For more information, see Strong Passwords and Password Policy. A partir de SQL Server 2012 (11.x), la información de contraseña almacenada se calcula con SHA-512 de la contraseña cifrada con sal.Beginning with SQL Server 2012 (11.x), stored password information is calculated using SHA-512 of the salted password.

En las contraseñas se distingue entre mayúsculas y minúsculas.Passwords are case-sensitive. Las contraseñas siempre deben ser de al menos 8 caracteres de longitud y no pueden superar los 128 caracteres.Passwords should always be at least eight characters long, and cannot exceed 128 characters. Las contraseñas pueden incluir a-z, A-Z, 0-9 y la mayoría de los caracteres no alfanuméricos.Passwords can include a-z, A-Z, 0-9, and most non-alphanumeric characters. Las contraseñas no pueden contener comillas simples ni login_name.Passwords cannot contain single quotes, or the login_name.

PASSWORD *=***hashed_password Se aplica solo a la palabra clave HASHED.PASSWORD = hashed_password Applies to the HASHED keyword only. Especifica el valor con hash de la contraseña para el inicio de sesión que se está creando.Specifies the hashed value of the password for the login that is being created.

HASHED Solo se aplica a inicios de sesión de SQL Server.HASHED Applies to SQL Server logins only. Especifica que la contraseña especificada después del argumento PASSWORD ya tiene aplicado el algoritmo hash.Specifies that the password entered after the PASSWORD argument is already hashed. 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.If this option is not selected, the string entered as password is hashed before it is stored in the database. Esta opción solo se debería utilizar para migrar las bases de datos de un servidor a otro.This option should only be used for migrating databases from one server to another. No utilice la opción HASHED para crear nuevos inicios de sesión.Do not use the HASHED option to create new logins. La opción HASHED no se puede usar con los valores hash creados con SQL 7 o una versión anterior.The HASHED option cannot be used with hashes created by SQL 7 or earlier.

MUST_CHANGE Solo se aplica a inicios de sesión de SQL Server.MUST_CHANGE Applies to SQL Server logins only. Si se incluye esta opción, SQL Server solicita al usuario una contraseña nueva la primera vez que se use el inicio de sesión nuevo.If this option is included, SQL Server prompts the user for a new password the first time the new login is used.

CREDENTIAL =credential_name Nombre de una credencial que se debe asignar al nuevo inicio de sesión de SQL Server.CREDENTIAL =credential_name The name of a credential to be mapped to the new SQL Server login. La credencial debe existir en la base de datos.The credential must already exist in the server. Actualmente esta opción solo vincula la credencial a un inicio de sesión.Currently this option only links the credential to a login. Las credenciales no se pueden asignar al inicio de sesión del administrador del sistema (sa).A credential cannot be mapped to the System Administrator (sa) login.

SID = sid Se usa para volver a crear un inicio de sesión.SID = sid Used to recreate a login. Solo se aplica a inicios de sesión con autenticación de SQL Server, no a los de Windows.Applies to SQL Server authentication logins only, not Windows authentication logins. Especifica el SID del nuevo inicio de sesión con autenticación de SQL Server.Specifies the SID of the new SQL Server authentication login. Si no se usa esta opción, SQL Server asigna un SID de manera automática.If this option is not used, SQL Server automatically assigns a SID. La estructura de SID depende de la versión de SQL Server.The SID structure depends on the SQL Server version. SID del inicio de sesión de SQL Server: un valor literal (binary(16)) de 16 bytes basado en un GUID.SQL Server login SID: a 16 byte (binary(16)) literal value based on a GUID. Por ejemplo, SID = 0x14585E90117152449347750164BA00A7.For example, SID = 0x14585E90117152449347750164BA00A7.

DEFAULT_DATABASE =database Especifica una base de datos predeterminada que debe asignarse al inicio de sesión.DEFAULT_DATABASE =database Specifies the default database to be assigned to the login. Si no se incluye esta opción, el valor predeterminado es master.If this option is not included, the default database is set to master.

DEFAULT_LANGUAGE =language Especifica el idioma predeterminado que debe asignarse al inicio de sesión.DEFAULT_LANGUAGE =language Specifies the default language to be assigned to the login. Si no se incluye esta opción, el idioma predeterminado es el del servidor.If this option is not included, the default language is set to the current default language of the server. Si el idioma predeterminado del servidor se cambia más tarde, el del inicio de sesión se mantiene igual.If the default language of the server is later changed, the default language of the login remains unchanged.

CHECK_EXPIRATION = { ON | OFF } Se aplica solo a inicios de sesión de SQL Server.CHECK_EXPIRATION = { ON | OFF } Applies to SQL Server logins only. Especifica si debe aplicarse la directiva de caducidad de contraseñas en este inicio de sesión.Specifies whether password expiration policy should be enforced on this login. El valor predeterminado es OFF.The default value is OFF.

CHECK_POLICY = { ON | OFF } Solo se aplica a inicios de sesión de SQL Server.CHECK_POLICY = { ON | OFF } Applies to SQL Server logins only. Especifica que se deben aplicar las directivas de contraseñas de Windows en el equipo en el que se ejecuta SQL Server para este inicio de sesión.Specifies that the Windows password policies of the computer on which SQL Server is running should be enforced on this login. El valor predeterminado es ON.The default value is ON.

Si la directiva de Windows requiere contraseñas seguras, las contraseñas deben tener al menos tres de las cuatro siguientes características:If the Windows policy requires strong passwords, passwords must contain at least three of the following four characteristics:

  • Un carácter en mayúscula (A-Z).An uppercase character (A-Z).
  • Un carácter en minúsculas (a-z).A lowercase character (a-z).
  • Un dígito (0-9).A digit (0-9).
  • Uno de los caracteres no alfanuméricos, como un espacio, _, @, *, ^, %, !, $, # o &.One of the non-alphanumeric characters, such as a space, _, @, *, ^, %, !, $, #, or &.

WINDOWS Especifica que el inicio de sesión se asigna a un inicio de sesión de Windows.WINDOWS Specifies that the login be mapped to a Windows login.

CERTIFICATE certname Especifica el nombre de un certificado al que asociar este inicio de sesión.CERTIFICATE certname Specifies the name of a certificate to be associated with this login. Este certificado debe existir en la base de datos maestra.This certificate must already occur in the master database.

ASYMMETRIC KEY asym_key_name Especifica el nombre de una clave asimétrica a la que asociar este inicio de sesión.ASYMMETRIC KEY asym_key_name Specifies the name of an asymmetric key to be associated with this login. Esta clave debe existir en la base de datos maestra.This key must already occur in the master database.

ObservacionesRemarks

  • En las contraseñas se distingue entre mayúsculas y minúsculas.Passwords are case-sensitive.
  • La aplicación previa del algoritmo hash a las contraseñas solo se admite en la creación de inicios de SQL Server.Prehashing of passwords is supported only when you are creating SQL Server logins.
  • Si se especifica MUST_CHANGE, CHECK_EXPIRATION y CHECK_POLICY, deben establecerse en ON.If MUST_CHANGE is specified, CHECK_EXPIRATION and CHECK_POLICY must be set to ON. Si no es así, la instrucción producirá un error.Otherwise, the statement will fail.
  • No se admite la combinación de CHECK_POLICY = OFF y CHECK_EXPIRATION = ON.A combination of CHECK_POLICY = OFF and CHECK_EXPIRATION = ON is not supported.
  • Cuando CHECK_POLICY se establece en OFF, lockout_time se restablece y CHECK_EXPIRATION se establece en OFF.When CHECK_POLICY is set to OFF, lockout_time is reset and CHECK_EXPIRATION is set to OFF.

Importante

CHECK_EXPIRATION y CHECK_POLICY solo se aplican en Windows Server 2003 y versiones posteriores.CHECK_EXPIRATION and CHECK_POLICY are only enforced on Windows Server 2003 and later. Para obtener más información, vea Password Policy.For more information, see Password Policy.

PermisosPermissions

  • Solo los usuarios con el permiso ALTER ANY LOGIN en el servidor o la pertenencia al rol fijo de servidor securityadmin pueden crear inicios de sesión.Only users with ALTER ANY LOGIN permission on the server or membership in the securityadmin fixed server role can create logins. Para más información, vea Roles de nivel de servidor y ALTER SERVER ROLE.For more information, see Server-Level Roles and ALTER SERVER ROLE.
  • Si se utiliza la opción CREDENTIAL , también será necesario el permiso ALTER ANY CREDENTIAL en el servidor.If the CREDENTIAL option is used, also requires ALTER ANY CREDENTIAL permission on the server.

Después de crear un inicio de sesiónAfter creating a login

Después de crear un inicio de sesión, el inicio de sesión se puede conectar a SQL Server, pero solo tiene los permisos concedidos al rol public.After creating a login, the login can connect to SQL Server, but only has the permissions granted to the public role. Considere la posibilidad de realizar algunas de las actividades siguientes.Consider performing some of the following activities.

  • Para conectarse a una base de datos, cree una para el inicio de sesión.To connect to a database, create a database user for the login. Para más información, consulte CREATE USER.For more information, see CREATE USER.
  • Cree un rol de servidor definido por el usuario mediante CREATE SERVER ROLE.Create a user-defined server role by using CREATE SERVER ROLE. Use ALTER SERVER ROLE... ADD MEMBER para agregar el nuevo inicio de sesión al rol de servidor definido por el usuario.Use ALTER SERVER ROLE ... ADD MEMBER to add the new login to the user-defined server role. Para obtener más información, vea CREATE SERVER ROLE y ALTER SERVER ROLE.For more information, see CREATE SERVER ROLE and ALTER SERVER ROLE.
  • Utilice sp_addsrvrolemember para agregar el inicio de sesión a un rol fijo de servidor.Use sp_addsrvrolemember to add the login to a fixed server role. Para obtener más información, vea Roles de nivel de servidor y sp_addsrvrolemember.For more information, see Server-Level Roles and sp_addsrvrolemember.
  • Use la instrucción de GRANT, para conceder permisos de servidor al nuevo inicio de sesión o un rol que contiene el inicio de sesión.Use the GRANT statement, to grant server-level permissions to the new login or to a role containing the login. Para obtener más información, vea GRANT.For more information, see GRANT.

EjemplosExamples

A.A. Crear un inicio de sesión con una contraseñaCreating a login with a password

El ejemplo siguiente crea un inicio de sesión para un usuario determinado y le asigna una contraseña.The following example creates a login for a particular user and assigns a password.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO

B.B. Crear un inicio de sesión con una contraseña que se debe cambiarCreating a login with a password that must be changed

El ejemplo siguiente crea un inicio de sesión para un usuario determinado y le asigna una contraseña.The following example creates a login for a particular user and assigns a password. La opción MUST_CHANGE exige a los usuarios que cambien la contraseña la primera vez que se conecten al servidor.The MUST_CHANGE option requires users to change this password the first time they connect to the server.

**Válido para **: SQL Server 2008SQL Server 2008 y versiones posteriores.Applies to: SQL Server 2008SQL Server 2008 and later.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>'
    MUST_CHANGE, CHECK_EXPIRATION = ON;
GO

Nota

La opción MUST_CHANGE no se puede utilizar cuando se ha desactivado CHECK_EXPIRATION.The MUST_CHANGE option cannot be used when CHECK_EXPIRATION is OFF.

C.C. Crear un inicio de sesión asignado a una credencialCreating a login mapped to a credential

El ejemplo siguiente crea el inicio de sesión para un usuario determinado, utilizando el de usuario.The following example creates the login for a particular user, using the user. Este inicio de sesión se asigna a la credencial.This login is mapped to the credential.

**Válido para **: SQL Server 2008SQL Server 2008 y versiones posteriores.Applies to: SQL Server 2008SQL Server 2008 and later.

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

D.D. Crear un inicio de sesión desde un certificadoCreating a login from a certificate

En el ejemplo siguiente se crea el inicio de sesión para un usuario determinado a partir de un certificado de master.The following example creates login for a particular user from a certificate in master.

**Válido para **: SQL Server 2008SQL Server 2008 y versiones posteriores.Applies to: SQL Server 2008SQL Server 2008 and later.

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

E.E. Crear un inicio de sesión desde una cuenta de dominio de WindowsCreating a login from a Windows domain account

El ejemplo siguiente crea un inicio de sesión a partir de una cuenta de dominio de Windows.The following example creates a login from a Windows domain account.

**Válido para **: SQL Server 2008SQL Server 2008 y versiones posteriores.Applies to: SQL Server 2008SQL Server 2008 and later.

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

F.F. Crear un inicio de sesión de un SIDCreating a login from a SID

En el ejemplo siguiente primero se crea un inicio de sesión de autenticación de SQL Server y se determina el SID del inicio de sesión.The following example first creates a SQL Server authentication login and determines the SID of the login.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';
SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

La consulta devuelve 0x241C11948AEEB749B0D22646DB1A19F2 como el SID.My query returns 0x241C11948AEEB749B0D22646DB1A19F2 as the SID. La consulta devolverá un valor diferente.Your query will return a different value. Las siguientes instrucciones eliminan el inicio de sesión y luego vuelven a crear el inicio de sesión.The following statements delete the login, and then recreate the login. Use el SID de la consulta anterior.Use the SID from your previous query.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

G.G. Creación de un inicio de sesión con varios argumentosCreating a login with multiple arguments

En el ejemplo siguiente se muestra cómo encadenar varios argumentos entre sí mediante el uso de comas entre cada argumento.The following example shows how to string multiple arguments together using commas between each argument.

CREATE LOGIN [MyUser]
WITH PASSWORD = 'MyPassword',
DEFAULT_DATABASE = MyDatabase,
CHECK_POLICY = OFF,
CHECK_EXPIRATION = OFF ;

Consulte tambiénSee Also

SQL ServerSQL Server *Grupo de bases de datos elásticas o base de datos única de
SQL Database*
* SQL Database
single database/elastic pool *
Instancia administrada de
SQL Database
SQL Database
managed instance
Azure Synapse
Analytics
Azure Synapse
Analytics
Analytics Platform
System (PDW)
Analytics Platform
System (PDW)

 

Grupo de bases de datos elásticas o base de datos única de Azure SQL DatabaseAzure SQL Database single database/elastic pool

SintaxisSyntax

-- Syntax for Azure SQL Database
CREATE LOGIN login_name
 { WITH <option_list> }

<option_list> ::=
    PASSWORD = { 'password' }
    [ , SID = sid ]

ArgumentosArguments

login_name Especifica el nombre del inicio de sesión que se va a crear.login_name Specifies the name of the login that is created. Las bases de datos únicas y agrupadas de Azure SQL Database y las bases de datos de Azure Synapse Analytics (anteriormente Azure SQL Data Warehouse) solo admiten inicios de sesión de SQL.Single and pooled databases in Azure SQL Database and databases in Azure Synapse Analytics (formerly Azure SQL Data Warehouse) supports only SQL logins. Para crear cuentas para usuarios de Azure Active Directory o para crear cuentas de usuario que no estén asociadas a un inicio de sesión, use la instrucción CREATE USER.To create accounts for Azure Active Directory users or to create user accounts not associated with a login, use the CREATE USER statement. Para obtener más información, vea Administración de inicios de sesión en Azure SQL Database.For more information, see Manage Logins in Azure SQL Database.

PASSWORD =' password*' Especifica la contraseña del inicio de sesión SQL que se está creando.PASSWORD =' password*' Specifies the password for the SQL login that is being created. Utilice una contraseña segura.Use a strong password. Para obtener más información, vea Contraseñas seguras y Directiva de contraseñas.For more information, see Strong Passwords and Password Policy. A partir de SQL Server 2012 (11.x)SQL Server 2012 (11.x), la información de la contraseña almacenada se calcula con las funciones SHA-512 de la contraseña salada.Beginning with SQL Server 2012 (11.x)SQL Server 2012 (11.x), stored password information is calculated using SHA-512 of the salted password.

En las contraseñas se distingue entre mayúsculas y minúsculas.Passwords are case-sensitive. Las contraseñas siempre deben ser de al menos 8 caracteres de longitud y no pueden superar los 128 caracteres.Passwords should always be at least eight characters long, and cannot exceed 128 characters. Las contraseñas pueden incluir a-z, A-Z, 0-9 y la mayoría de los caracteres no alfanuméricos.Passwords can include a-z, A-Z, 0-9, and most non-alphanumeric characters. Las contraseñas no pueden contener comillas simples ni login_name.Passwords cannot contain single quotes, or the login_name.

SID = sid Se usa para volver a crear un inicio de sesión.SID = sid Used to recreate a login. Solo se aplica a inicios de sesión con autenticación de SQL Server, no a los de Windows.Applies to SQL Server authentication logins only, not Windows authentication logins. Especifica el SID del nuevo inicio de sesión con autenticación de SQL Server.Specifies the SID of the new SQL Server authentication login. Si no se usa esta opción, SQL Server asigna un SID de manera automática.If this option is not used, SQL Server automatically assigns a SID. La estructura de SID depende de la versión de SQL Server.The SID structure depends on the SQL Server version. Para SQL Database, esto es un literal (binary(32)) de 32 bytes que consta de 0x01060000000000640000000000000000 más 16 bytes que representan un GUID.For SQL Database, this is a 32 byte (binary(32)) literal consisting of 0x01060000000000640000000000000000 plus 16 bytes representing a GUID. Por ejemplo, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.For example, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

ObservacionesRemarks

  • En las contraseñas se distingue entre mayúsculas y minúsculas.Passwords are case-sensitive.
  • Al crear un inicio de sesión automáticamente se habilita el nuevo inicio de sesión y se concede al mismo el permiso de CONNECT SQL de nivel servidor.Creating a login automatically enables the new login and grants the login the server level CONNECT SQL permission.

Importante

Vea Administración de inicios de sesión en Azure SQL Database para obtener información sobre cómo trabajar con inicios de sesión y usuarios en Azure SQL Database.See Manage Logins in Azure SQL Database for information about working with logins and users in Azure SQL Database.

Inicio de sesiónLogin

Inicios de sesión en SQL DatabaseSQL Database Logins

La instrucción CREATE LOGIN debe ser la única de un lote.The CREATE LOGIN statement must be the only statement in a batch.

En algunos métodos de conexión con SQL Database, como sqlcmd, debe anexar el nombre del servidor de SQL Database al nombre de inicio de sesión en la cadena de conexión mediante la notación <inicio_de_sesión>@<servidor>.In some methods of connecting to SQL Database, such as sqlcmd, you must append the SQL Database server name to the login name in the connection string by using the <login>@<server> notation. Por ejemplo, si el inicio de sesión es login1 y el nombre completo del servidor de SQL Database es servername.database.windows.net, el parámetro nombre_de_usuario de la cadena de conexión debe ser login1@servername.For example, if your login is login1 and the fully qualified name of the SQL Database server is servername.database.windows.net, the username parameter of the connection string should be login1@servername. Dado que la longitud total del parámetro username es de 128 caracteres, login_name se limita a 127 caracteres menos la longitud del nombre del servidor.Because the total length of the username parameter is 128 characters, login_name is limited to 127 characters minus the length of the server name. En el ejemplo, login_name solo puede tener 117 caracteres porque servername es de 10 caracteres.In the example, login_name can only be 117 characters long because servername is 10 characters.

En SQL Database, debe estar conectado a la base de datos maestra con los permisos correctos para crear un inicio de sesión.In SQL Database, you must be connected to the master database with the appropriate permissions to create a login. Para obtener más información, vea Creación de inicios de sesión y usuarios adicionales con permisos administrativos.For more information, see Create additional logins and users having administrative permissions.

Las reglas de SQL Server permiten crear un inicio de sesión con autenticación de SQL Server con el formato <nombreDeInicioDeSesión>@<nombreDeServidor>.SQL Server rules allow you create a SQL Server authentication login in the format <loginname>@<servername>. Si el servidor de SQL DatabaseSQL Database es myazureserver y el inicio de sesión es **myemail@live.com**, debe proporcionar un inicio de sesión como **myemail@live.com@myazureserver**.If your SQL DatabaseSQL Database server is myazureserver and your login is **myemail@live.com**, then you must supply your login as **myemail@live.com@myazureserver**.

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.In SQL Database, login data required to authenticate a connection and server-level firewall rules is temporarily cached in each database. Esta caché se actualiza regularmente.This cache is periodically refreshed. Para forzar una actualización de la caché de autenticación y garantizar que una base de datos tenga la versión más reciente de la tabla de inicios de sesión, ejecute DBCC FLUSHAUTHCACHE.To force a refresh of the authentication cache and make sure that a database has the latest version of the logins table, execute DBCC FLUSHAUTHCACHE.

PermisosPermissions

Solo pueden crear inicios de sesión el inicio de sesión de entidad de seguridad a nivel de servidor (creado por el proceso de aprovisionamiento) o los miembros del rol de base de datos loginmanager en la base de datos maestra.Only the server-level principal login (created by the provisioning process) or members of the loginmanager database role in the master database can create new logins. Para obtener más información, vea Creación de inicios de sesión y usuarios adicionales con permisos administrativos.For more information, see Create additional logins and users having administrative permissions.

EjemplosExamples

A.A. Crear un inicio de sesión con una contraseñaCreating a login with a password

El ejemplo siguiente crea un inicio de sesión para un usuario determinado y le asigna una contraseña.The following example creates a login for a particular user and assigns a password.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO

B.B. Crear un inicio de sesión de un SIDCreating a login from a SID

En el ejemplo siguiente primero se crea un inicio de sesión de autenticación de SQL Server y se determina el SID del inicio de sesión.The following example first creates a SQL Server authentication login and determines the SID of the login.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';

SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

La consulta devuelve 0x241C11948AEEB749B0D22646DB1A19F2 como el SID.My query returns 0x241C11948AEEB749B0D22646DB1A19F2 as the SID. La consulta devolverá un valor diferente.Your query will return a different value. Las siguientes instrucciones eliminan el inicio de sesión y luego vuelven a crear el inicio de sesión.The following statements delete the login, and then recreate the login. Use el SID de la consulta anterior.Use the SID from your previous query.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

Consulte tambiénSee Also

SQL ServerSQL Server Grupo de bases de datos elásticas o base de datos única de
SQL Database
SQL Database
single database/elastic pool
* Instancia administrada de
SQL Database *
* SQL Database
managed instance *
Azure Synapse
Analytics
Azure Synapse
Analytics
Analytics Platform
System (PDW)
Analytics Platform
System (PDW)

 

Instancia administrada de Azure SQL DatabaseAzure SQL Database managed instance

SintaxisSyntax

-- Syntax for Azure SQL Database managed instance
CREATE LOGIN login_name [FROM EXTERNAL PROVIDER] { WITH <option_list> [,..]}

<option_list> ::=
    PASSWORD = {'password'}
    | SID = sid
    | DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language

ArgumentosArguments

login_nameCuando se usa con la cláusula FROM EXTERNAL PROVIDER, el inicio de sesión especifica la entidad de seguridad de Azure Active Directory (AD), que es un usuario, un grupo o una aplicación de Azure AD.login_name When used with the FROM EXTERNAL PROVIDER clause, the login specifies the Azure Active Directory (AD) Principal, which is an Azure AD user, group, or application. En caso contrario, el inicio de sesión representa el nombre del inicio de sesión SQL que se ha creado.Otherwise, the login represents the name of the SQL login that was created.

FROM EXTERNAL PROVIDERFROM EXTERNAL PROVIDER
Especifica que el inicio de sesión es para la autenticación de Azure AD.Specifies that the login is for Azure AD Authentication.

PASSWORD = 'password' Especifica la contraseña del inicio de sesión SQL que se está creando.PASSWORD = 'password' Specifies the password for the SQL login that is being created. Utilice una contraseña segura.Use a strong password. Para obtener más información, vea Contraseñas seguras y Directiva de contraseñas.For more information, see Strong Passwords and Password Policy. A partir de SQL Server 2012 (11.x)SQL Server 2012 (11.x), la información de la contraseña almacenada se calcula con las funciones SHA-512 de la contraseña salada.Beginning with SQL Server 2012 (11.x)SQL Server 2012 (11.x), stored password information is calculated using SHA-512 of the salted password.

En las contraseñas se distingue entre mayúsculas y minúsculas.Passwords are case-sensitive. Las contraseñas siempre deben tener al menos 10 caracteres de longitud y no pueden superar los 128 caracteres.Passwords should always be at least ten characters long, and cannot exceed 128 characters. Las contraseñas pueden incluir a-z, A-Z, 0-9 y la mayoría de los caracteres no alfanuméricos.Passwords can include a-z, A-Z, 0-9, and most non-alphanumeric characters. Las contraseñas no pueden contener comillas simples ni login_name.Passwords cannot contain single quotes, or the login_name.

SID = sid Se usa para volver a crear un inicio de sesión.SID = sid Used to recreate a login. Solo se aplica a los inicios de sesión con autenticación de SQL Server.Applies to SQL Server authentication logins only. Especifica el SID del nuevo inicio de sesión con autenticación de SQL Server.Specifies the SID of the new SQL Server authentication login. Si no se usa esta opción, SQL Server asigna un SID de manera automática.If this option is not used, SQL Server automatically assigns a SID. La estructura de SID depende de la versión de SQL Server.The SID structure depends on the SQL Server version. Para SQL Database, esto es un literal (binary(32)) de 32 bytes que consta de 0x01060000000000640000000000000000 más 16 bytes que representan un GUID.For SQL Database, this is a 32 byte (binary(32)) literal consisting of 0x01060000000000640000000000000000 plus 16 bytes representing a GUID. Por ejemplo, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.For example, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

ObservacionesRemarks

  • En las contraseñas se distingue entre mayúsculas y minúsculas.Passwords are case-sensitive.

  • La nueva sintaxis se presentó para la creación de entidades de seguridad de nivel de servidor asignadas a cuentas de Azure AD (FROM EXTERNAL PROVIDER)New syntax is introduced for the creation of server-level principals mapped to Azure AD accounts (FROM EXTERNAL PROVIDER)

  • Cuando se especifica FROM EXTERNAL PROVIDER:When FROM EXTERNAL PROVIDER is specified:

    • login_name debe representar una cuenta de Azure AD (usuario, grupo o aplicación) existente que sea accesible en Azure AD mediante la Instancia administrada de Azure SQL actual.The login_name must represent an existing Azure AD account (user, group, or application) that is accessible in Azure AD by the current Azure SQL managed instance. En las entidades de seguridad de Azure AD, la sintaxis de CREATE LOGIN requiere:For Azure AD principals, the CREATE LOGIN syntax requires:
      • UserPrincipalName del objeto Azure AD para los usuarios de Azure AD.UserPrincipalName of the Azure AD object for Azure AD Users.
      • DisplayName del objeto Azure AD para los grupos de Azure AD y las aplicaciones de Azure AD.DisplayName of Azure AD object for Azure AD Groups and Azure AD Applications.
    • No se puede usar la opción PASSWORD.The PASSWORD option cannot be used.
  • De forma predeterminada, cuando se omite la cláusula FROM EXTERNAL PROVIDER, se crea un inicio de sesión SQL convencional.By default, when the FROM EXTERNAL PROVIDER clause is omitted, a regular SQL login is created.

  • Los inicios de sesión de Azure AD son visibles en sys.server_principals, con el valor de columna de tipo establecido en E y type_desc establecido en EXTERNAL_LOGIN para los inicios de sesión asignados a usuarios de Azure AD, o bien con el valor de tipo de columna establecido en X y el valor type_desc establecido en EXTERNAL_GROUP para los inicios de sesión asignados a grupos de Azure AD.Azure AD logins are visible in sys.server_principals, with type column value set to E and type_desc set to EXTERNAL_LOGIN for logins mapped to Azure AD users, or type column value set to X and type_desc value set to EXTERNAL_GROUP for logins mapped to Azure AD groups.

  • Para obtener un script para transferir inicios de sesión, vea Cómo transferir los inicios de sesión y las contraseñas entre instancias de SQL Server 2005 y SQL Server 2008.For a script to transfer logins, see How to transfer the logins and the passwords between instances of SQL Server 2005 and SQL Server 2008.

  • Al crear un inicio de sesión automáticamente se habilita el nuevo inicio de sesión y se concede al mismo el permiso de CONNECT SQL de nivel servidor.Creating a login automatically enables the new login and grants the login the server level CONNECT SQL permission.

Importante

Vea Administración de inicios de sesión en Azure SQL Database para obtener información sobre cómo trabajar con inicios de sesión y usuarios en Azure SQL Database.See Manage Logins in Azure SQL Database for information about working with logins and users in Azure SQL Database.

Inicios de sesión y permisosLogins and Permissions

Solo pueden crear inicios de sesión el inicio de sesión de entidad de seguridad de nivel de servidor (creado por el proceso de aprovisionamiento) o los miembros de los roles de base de datos securityadmin o sysadmin en la base de datos principal.Only the server-level principal login (created by the provisioning process) or members of the securityadmin or sysadmin database role in the master database can create new logins. Para más información, vea Roles de nivel de servidor y ALTER SERVER ROLE.For more information, see Server-Level Roles and ALTER SERVER ROLE.

De forma predeterminada, el permiso estándar que se concede a un inicio de sesión de Azure AD recién creado en la base de datos principal es el siguiente: CONNECT SQL y VIEW ANY DATABASE.By default, the standard permission granted to a newly created Azure AD login in master is: CONNECT SQL and VIEW ANY DATABASE.

Inicios de sesión de Instancia administrada de SQL DatabaseSQL Database managed instance Logins

  • Debe tener el permiso ALTER ANY LOGIN en el servidor o la pertenencia a uno de los roles fijos de servidor securityadmin o sysadmin.Must have ALTER ANY LOGIN permission on the server or membership in the one of the fixed server roles securityadmin or sysadmin. Solo la cuenta de Azure Active Directory (Azure AD) con el permiso ALTER ANY LOGIN en el servidor o la pertenencia a uno de estos roles puede ejecutar el comando de creación.Only an Azure Active Directory (Azure AD) account with ALTER ANY LOGIN permission on the server or membership in one of those roles can execute the create command.
  • Si el inicio de sesión es una entidad de seguridad de SQL, solo los inicios de sesión que forman parte del rol sysadmin pueden utilizar el comando create para crear inicios de sesión para una cuenta de Azure AD.If the login is a SQL Principal, only logins that are part of the sysadmin role can use the create command to create logins for an Azure AD account.
  • Debe ser un miembro de Azure AD en el mismo directorio que se use para Instancia administrada de Azure SQL.Must be a member of Azure AD within the same directory used for Azure SQL managed instance.

Después de crear un inicio de sesiónAfter creating a login

Nota

La funcionalidad de administrador de Azure AD para instancia administrada después de la creación ha cambiado.The Azure AD admin for managed instance functionality after creation has changed. Para obtener más información, consulte Nueva funcionalidad de administrador de Azure AD para MI.For more information, see New Azure AD admin functionality for MI.

Después de crear un inicio de sesión, se puede conectar a una Instancia administrada de SQL Database, pero solo tiene los permisos concedidos al rol public.After creating a login, the login can connect to a SQL Database managed instance, but only has the permissions granted to the public role. Considere la posibilidad de realizar algunas de las actividades siguientes.Consider performing some of the following activities.

  • Para crear un usuario de Azure AD a partir de un inicio de sesión de Azure AD, vea CREATE USER.To create an Azure AD user from an Azure AD login, see CREATE USER.
  • Para conceder permisos a un usuario en una base de datos, use la instrucción ALTER SERVER ROLE... ADD MEMBER para agregar al usuario a uno de los roles de base de datos integrados o a un rol personalizado, o bien conceda los permisos al usuario directamente mediante la instrucción GRANT.To grant permissions to a user in a database, use the ALTER SERVER ROLE ... ADD MEMBER statement to add the user to one of the built-in database roles or a custom role, or grant permissions to the user directly using the GRANT statement. Para más información, consulte Roles no administradores, Roles administrativos de nivel de servidor adicional y las instrucciones ALTER SERVER ROLE y GRANT.For more information, see Non-administrator Roles, Additional server-level administrative roles, ALTER SERVER ROLE, and GRANT statement.
  • Para conceder permisos de todo el servidor, cree un usuario de base de datos en la base de datos maestra y use la instrucción ALTER SERVER ROLE... ADD MEMBER para agregar al usuario a uno de los roles de servidor de administración.To grant server-wide permissions, create a database user in the master database and use the ALTER SERVER ROLE ... ADD MEMBER statement to add the user to one of the administrative server roles. Para obtener más información, vea Roles de nivel de servidor, ALTER SERVER ROLE y Roles de servidor.For more information, see Server-Level Roles and ALTER SERVER ROLE, and Server roles.
    • Use el comando siguiente para agregar el rol sysadmin a un inicio de sesión de Azure AD: ALTER SERVER ROLE sysadmin ADD MEMBER [AzureAD_Login_name]Use the following command to add the sysadmin role to an Azure AD login: ALTER SERVER ROLE sysadmin ADD MEMBER [AzureAD_Login_name]
  • Use la instrucción de GRANT, para conceder permisos de servidor al nuevo inicio de sesión o un rol que contiene el inicio de sesión.Use the GRANT statement, to grant server-level permissions to the new login or to a role containing the login. Para obtener más información, vea GRANT.For more information, see GRANT.

LimitacionesLimitations

  • No se admite establecer un inicio de sesión de Azure AD asignado a un grupo de Azure AD como el propietario de la base de datos.Setting an Azure AD login mapped to an Azure AD group as the database owner is not supported.
  • Se admite la suplantación de las entidades de seguridad a nivel de servidor de Azure AD mediante otras entidades de seguridad de Azure AD, como la cláusula EXECUTE AS.Impersonation of Azure AD server-level principals using other Azure AD principals is supported, such as the EXECUTE AS clause.
  • Solo las entidades de seguridad de nivel de servidor de SQL (inicios de sesión) que formen parte del rol sysadmin pueden ejecutar las operaciones siguientes destinadas a entidades de seguridad de Azure AD:Only SQL server-level principals (logins) that are part of the sysadmin role can execute the following operations targeting Azure AD principals:
    • EXECUTE AS USEREXECUTE AS USER
    • EXECUTE AS LOGINEXECUTE AS LOGIN
  • Los usuarios externos (invitados) que se han importado desde otro directorio de Azure AD no se pueden configurar directamente como administradores de Azure AD para la instancia administrada.External (guest) users imported from another Azure AD directory cannot be directly configured as an Azure AD admin for managed instance. En su lugar, debe unir a los usuarios externos a un grupo de Azure AD con seguridad habilitada y configurar este grupo como administrador de la instancia.Instead, join external user to an Azure AD security-enabled group and configure the group as the instance administrator.

EjemplosExamples

A.A. Crear un inicio de sesión con una contraseñaCreating a login with a password

El ejemplo siguiente crea un inicio de sesión para un usuario determinado y le asigna una contraseña.The following example creates a login for a particular user and assigns a password.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO

B.B. Crear un inicio de sesión de un SIDCreating a login from a SID

En el ejemplo siguiente primero se crea un inicio de sesión de autenticación de SQL Server y se determina el SID del inicio de sesión.The following example first creates a SQL Server authentication login and determines the SID of the login.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';

SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

La consulta devuelve 0x241C11948AEEB749B0D22646DB1A19F2 como el SID.My query returns 0x241C11948AEEB749B0D22646DB1A19F2 as the SID. La consulta devolverá un valor diferente.Your query will return a different value. Las siguientes instrucciones eliminan el inicio de sesión y luego vuelven a crear el inicio de sesión.The following statements delete the login, and then recreate the login. Use el SID de la consulta anterior.Use the SID from your previous query.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

C.C. Creación de un inicio de sesión para una cuenta de Azure AD localCreating a login for a local Azure AD account

En el ejemplo siguiente se crea un inicio de sesión para la cuenta de Azure AD joe@myaad.onmicrosoft.com que existe en la instancia myaad de Azure AD.The following example creates a login for the Azure AD account joe@myaad.onmicrosoft.com that exists in the Azure AD of myaad.

CREATE LOGIN [joe@myaad.onmicrosoft.com] FROM EXTERNAL PROVIDER
GO

D.D. Creación de un inicio de sesión para una cuenta de Azure AD federadaCreating a login for a federated Azure AD account

En el ejemplo siguiente se crea un inicio de sesión para una cuenta de Azure AD federada bob@contoso.com que existe en la instancia contoso de Azure AD.The following example creates a login for a federated Azure AD account bob@contoso.com that exists in the Azure AD called contoso. El usuario bob también puede ser un usuario invitado.User bob can also be a guest user.

CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
GO

E.E. Creación de un inicio de sesión para un grupo de Azure ADCreating a login for an Azure AD group

En el ejemplo siguiente se crea un inicio de sesión para el grupo de Azure AD mygroup que existe en la instancia myaad de Azure AD.The following example creates a login for the Azure AD group mygroup that exists in the Azure AD of myaad

CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER
GO

F.F. Creación de un inicio de sesión para una aplicación de Azure ADCreating a login for an Azure AD application

En el ejemplo siguiente se crea un inicio de sesión para la aplicación de Azure AD myapp que existe en la instancia myaad de Azure AD.The following example creates a login for the Azure AD application myapp that exists in the Azure AD of myaad

CREATE LOGIN [myapp] FROM EXTERNAL PROVIDER

G.G. Comprobación de los inicios de sesión recién agregadosCheck newly added logins

Para comprobar el inicio de sesión recién agregado, ejecute el siguiente comando de T-SQL:To check the newly added login, execute the following T-SQL command:

SELECT *
FROM sys.server_principals;
GO

Consulte tambiénSee Also

SQL ServerSQL Server Grupo de bases de datos elásticas o base de datos única de
SQL Database
SQL Database
single database/elastic pool
Instancia administrada de
SQL Database
SQL Database
managed instance
* Azure Synapse
Analytics *
* Azure Synapse
Analytics *
Analytics Platform
System (PDW)
Analytics Platform
System (PDW)

 

Azure Synapse AnalyticsAzure Synapse Analytics

SintaxisSyntax

-- Syntax for Azure Synapse Analytics
CREATE LOGIN login_name
 { WITH <option_list> }

<option_list> ::=
    PASSWORD = { 'password' }
    [ , SID = sid ]

ArgumentosArguments

login_name Especifica el nombre del inicio de sesión que se va a crear.login_name Specifies the name of the login that is created. SQL Analytics en Azure Synapse solo admite inicios de sesión de SQL.SQL Analytics in Azure Synapse supports only SQL logins. Para crear cuentas para usuarios de Azure Active Directory, use la instrucción CREATE USER.To create accounts for Azure Active Directory users, use the CREATE USER statement.

PASSWORD =' password*' Especifica la contraseña del inicio de sesión SQL que se está creando.PASSWORD =' password*' Specifies the password for the SQL login that is being created. Utilice una contraseña segura.Use a strong password. Para obtener más información, vea Contraseñas seguras y Directiva de contraseñas.For more information, see Strong Passwords and Password Policy. A partir de SQL Server 2012 (11.x)SQL Server 2012 (11.x), la información de la contraseña almacenada se calcula con las funciones SHA-512 de la contraseña salada.Beginning with SQL Server 2012 (11.x)SQL Server 2012 (11.x), stored password information is calculated using SHA-512 of the salted password.

En las contraseñas se distingue entre mayúsculas y minúsculas.Passwords are case-sensitive. Las contraseñas siempre deben ser de al menos 8 caracteres de longitud y no pueden superar los 128 caracteres.Passwords should always be at least eight characters long, and cannot exceed 128 characters. Las contraseñas pueden incluir a-z, A-Z, 0-9 y la mayoría de los caracteres no alfanuméricos.Passwords can include a-z, A-Z, 0-9, and most non-alphanumeric characters. Las contraseñas no pueden contener comillas simples ni login_name.Passwords cannot contain single quotes, or the login_name.

SID = sid Se usa para volver a crear un inicio de sesión.SID = sid Used to recreate a login. Solo se aplica a inicios de sesión con autenticación de SQL Server, no a los de Windows.Applies to SQL Server authentication logins only, not Windows authentication logins. Especifica el SID del nuevo inicio de sesión con autenticación de SQL Server.Specifies the SID of the new SQL Server authentication login. Si no se usa esta opción, SQL Server asigna un SID de manera automática.If this option is not used, SQL Server automatically assigns a SID. La estructura de SID depende de la versión de SQL Server.The SID structure depends on the SQL Server version. En SQL Analytics, es un literal (binary(32)) de 32 bytes que consta de 0x01060000000000640000000000000000 más 16 bytes que representan un GUID.For SQL Analytics, this is a 32 byte (binary(32)) literal consisting of 0x01060000000000640000000000000000 plus 16 bytes representing a GUID. Por ejemplo, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.For example, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

ObservacionesRemarks

Inicios de sesiónLogins

La instrucción CREATE LOGIN debe ser la única de un lote.The CREATE LOGIN statement must be the only statement in a batch.

Al conectarse a Azure Synapse mediante herramientas como sqlcmd, debe anexar el nombre del servidor de SQL Analytics al nombre de inicio de sesión de la cadena de conexión mediante la notación <inicio_de_sesión>@<servidor>.When connecting to Azure Synapse using tools such as sqlcmd, you must append the SQL Analytics server name to the login name in the connection string by using the <login>@<server> notation. Por ejemplo, si el inicio de sesión es login1 y el nombre completo del servidor de SQL Analytics es servername.database.windows.net, el parámetro nombre_de_usuario de la cadena de conexión debe ser login1@servername.For example, if your login is login1 and the fully qualified name of the SQL Analytics server is servername.database.windows.net, the username parameter of the connection string should be login1@servername. Dado que la longitud total del parámetro username es de 128 caracteres, login_name se limita a 127 caracteres menos la longitud del nombre del servidor.Because the total length of the username parameter is 128 characters, login_name is limited to 127 characters minus the length of the server name. En el ejemplo, login_name solo puede tener 117 caracteres porque servername es de 10 caracteres.In the example, login_name can only be 117 characters long because servername is 10 characters.

Para crear un inicio de sesión, debe estar conectado a la base de datos maestra.To create a login, you must be connected to the master database.

Las reglas de SQL Server permiten crear un inicio de sesión con autenticación de SQL Server con el formato <nombreDeInicioDeSesión>@<nombreDeServidor>.SQL Server rules allow you create a SQL Server authentication login in the format <loginname>@<servername>. Si el servidor de SQL DatabaseSQL Database es myazureserver y el inicio de sesión es **myemail@live.com**, debe proporcionar un inicio de sesión como **myemail@live.com@myazureserver**.If your SQL DatabaseSQL Database server is myazureserver and your login is **myemail@live.com**, then you must supply your login as **myemail@live.com@myazureserver**.

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.Login data required to authenticate a connection and server-level firewall rules is temporarily cached in each database. Esta caché se actualiza regularmente.This cache is periodically refreshed. Para forzar una actualización de la caché de autenticación y garantizar que una base de datos tenga la versión más reciente de la tabla de inicios de sesión, ejecute DBCC FLUSHAUTHCACHE.To force a refresh of the authentication cache and make sure that a database has the latest version of the logins table, execute DBCC FLUSHAUTHCACHE.

Para más información sobre los inicios de sesión, consulte cómo administrar bases de datos e inicios de sesión.For more information about logins, see Managing Databases and Logins.

PermisosPermissions

Solo pueden crear inicios de sesión el inicio de sesión de entidad de seguridad a nivel de servidor (creado por el proceso de aprovisionamiento) o los miembros del rol de base de datos loginmanager en la base de datos maestra.Only the server-level principal login (created by the provisioning process) or members of the loginmanager database role in the master database can create new logins. Para más información, vea Roles de nivel de servidor y ALTER SERVER ROLE.For more information, see Server-Level Roles and ALTER SERVER ROLE.

Después de crear un inicio de sesiónAfter creating a login

Después de crear un inicio de sesión, este se puede conectar a Azure Synapse, pero solo tiene los permisos concedidos al rol public.After creating a login, the login can connect to Azure Synapse but only has the permissions granted to the public role. Considere la posibilidad de realizar algunas de las actividades siguientes.Consider performing some of the following activities.

  • Para conectarse a una base de datos, cree una para el inicio de sesión.To connect to a database, create a database user for the login. Para más información, consulte CREATE USER.For more information, see CREATE USER.

  • Para conceder permisos a un usuario en una base de datos, use la instrucción ALTER SERVER ROLE... ADD MEMBER para agregar al usuario a uno de los roles de base de datos integrados o a un rol personalizado, o bien conceda los permisos al usuario directamente mediante la instrucción GRANT.To grant permissions to a user in a database, use the ALTER SERVER ROLE ... ADD MEMBER statement to add the user to one of the built-in database roles or a custom role, or grant permissions to the user directly using the GRANT statement. Para más información, consulte Roles no administradores, Roles administrativos de nivel de servidor adicional y las instrucciones ALTER SERVER ROLE y GRANT.For more information, see Non-administrator Roles, Additional server-level administrative roles, ALTER SERVER ROLE, and GRANT statement.

  • Para conceder permisos de todo el servidor, cree un usuario de base de datos en la base de datos maestra y use la instrucción ALTER SERVER ROLE... ADD MEMBER para agregar al usuario a uno de los roles de servidor de administración.To grant server-wide permissions, create a database user in the master database and use the ALTER SERVER ROLE ... ADD MEMBER statement to add the user to one of the administrative server roles. Para obtener más información, vea Roles de nivel de servidor, ALTER SERVER ROLE y Roles de servidor.For more information, see Server-Level Roles and ALTER SERVER ROLE, and Server roles.

  • Use la instrucción de GRANT, para conceder permisos de servidor al nuevo inicio de sesión o un rol que contiene el inicio de sesión.Use the GRANT statement, to grant server-level permissions to the new login or to a role containing the login. Para obtener más información, vea GRANT.For more information, see GRANT.

EjemplosExamples

A.A. Crear un inicio de sesión con una contraseñaCreating a login with a password

El ejemplo siguiente crea un inicio de sesión para un usuario determinado y le asigna una contraseña.The following example creates a login for a particular user and assigns a password.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO

B.B. Crear un inicio de sesión de un SIDCreating a login from a SID

En el ejemplo siguiente primero se crea un inicio de sesión de autenticación de SQL Server y se determina el SID del inicio de sesión.The following example first creates a SQL Server authentication login and determines the SID of the login.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';

SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

La consulta devuelve 0x241C11948AEEB749B0D22646DB1A19F2 como el SID.My query returns 0x241C11948AEEB749B0D22646DB1A19F2 as the SID. La consulta devolverá un valor diferente.Your query will return a different value. Las siguientes instrucciones eliminan el inicio de sesión y luego vuelven a crear el inicio de sesión.The following statements delete the login, and then recreate the login. Use el SID de la consulta anterior.Use the SID from your previous query.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

Consulte tambiénSee Also

SQL ServerSQL Server Grupo de bases de datos elásticas o base de datos única de
SQL Database
SQL Database
single database/elastic pool
Instancia administrada de
SQL Database
SQL Database
managed instance
Azure Synapse
Analytics
Azure Synapse
Analytics
* Analytics
Platform System (PDW) *
* Analytics
Platform System (PDW) *

 

Sistema de la plataforma de análisisAnalytics Platform System

SintaxisSyntax

-- Syntax for Analytics Platform System
CREATE LOGIN loginName { WITH <option_list1> | FROM WINDOWS }

<option_list1> ::=
    PASSWORD = { 'password' } [ MUST_CHANGE ]
    [ , <option_list> [ ,... ] ]

<option_list> ::=
      CHECK_EXPIRATION = { ON | OFF}
    | CHECK_POLICY = { ON | OFF}

ArgumentosArguments

login_name Especifica el nombre del inicio de sesión que se va a crear.login_name Specifies the name of the login that is created. Hay cuatro tipos de inicios de sesión: inicios de sesión de SQL Server, de Windows, asignados a certificados y asignados a claves asimétricas.There are four types of logins: SQL Server logins, Windows logins, certificate-mapped logins, and asymmetric key-mapped logins. Cuando crea inicios de sesión que se asignan desde una cuenta de dominio de Windows, debe utilizar el nombre de inicio de sesión de usuario anterior a Windows 2000 con el formato[<domainName>\<login_name>].When you are creating logins that are mapped from a Windows domain account, you must use the pre-Windows 2000 user logon name in the format [<domainName>\<login_name>]. No puede utilizar un UPN con el formato login_name@DomainName.You cannot use a UPN in the format login_name@DomainName. Vea el ejemplo D más adelante en este artículo.For an example, see example D later in this article. Los inicios de sesión con autenticación son del tipo sysname, deben seguir las reglas de los Identificadores y no pueden contener "\".Authentication logins are type sysname and must conform to the rules for Identifiers and cannot contain a '\'. Los inicios de sesión de Windows pueden contener un carácter '\”.Windows logins can contain a '\'. Los inicios de sesión basados en usuarios de Active Directory se limitan a nombres de menos de 21 caracteres.Logins based on Active Directory users, are limited to names of fewer than 21 characters.

PASSWORD ="contraseña" Solo se aplica a inicios de sesión de SQL Server.PASSWORD ='password' Applies to SQL Server logins only. Especifica la contraseña del inicio de sesión que se está creando.Specifies the password for the login that is being created. Utilice una contraseña segura.Use a strong password. Para obtener más información, vea Contraseñas seguras y Directiva de contraseñas.For more information, see Strong Passwords and Password Policy. A partir de SQL Server 2012 (11.x), la información de contraseña almacenada se calcula con SHA-512 de la contraseña cifrada con sal.Beginning with SQL Server 2012 (11.x), stored password information is calculated using SHA-512 of the salted password.

En las contraseñas se distingue entre mayúsculas y minúsculas.Passwords are case-sensitive. Las contraseñas siempre deben ser de al menos 8 caracteres de longitud y no pueden superar los 128 caracteres.Passwords should always be at least eight characters long, and cannot exceed 128 characters. Las contraseñas pueden incluir a-z, A-Z, 0-9 y la mayoría de los caracteres no alfanuméricos.Passwords can include a-z, A-Z, 0-9, and most non-alphanumeric characters. Las contraseñas no pueden contener comillas simples ni login_name.Passwords cannot contain single quotes, or the login_name.

MUST_CHANGE Solo se aplica a inicios de sesión de SQL Server.MUST_CHANGE Applies to SQL Server logins only. Si se incluye esta opción, SQL Server solicita al usuario una contraseña nueva la primera vez que se use el inicio de sesión nuevo.If this option is included, SQL Server prompts the user for a new password the first time the new login is used.

CHECK_EXPIRATION = { ON | OFF } Se aplica solo a inicios de sesión de SQL Server.CHECK_EXPIRATION = { ON | OFF } Applies to SQL Server logins only. Especifica si debe aplicarse la directiva de caducidad de contraseñas en este inicio de sesión.Specifies whether password expiration policy should be enforced on this login. El valor predeterminado es OFF.The default value is OFF.

CHECK_POLICY = { ON | OFF } Solo se aplica a inicios de sesión de SQL Server.CHECK_POLICY = { ON | OFF } Applies to SQL Server logins only. Especifica que se deben aplicar las directivas de contraseñas de Windows en el equipo en el que se ejecuta SQL Server para este inicio de sesión.Specifies that the Windows password policies of the computer on which SQL Server is running should be enforced on this login. El valor predeterminado es ON.The default value is ON.

Si la directiva de Windows requiere contraseñas seguras, las contraseñas deben tener al menos tres de las cuatro siguientes características:If the Windows policy requires strong passwords, passwords must contain at least three of the following four characteristics:

  • Un carácter en mayúscula (A-Z).An uppercase character (A-Z).
  • Un carácter en minúsculas (a-z).A lowercase character (a-z).
  • Un dígito (0-9).A digit (0-9).
  • Uno de los caracteres no alfanuméricos, como un espacio, _, @, *, ^, %, !, $, # o &.One of the non-alphanumeric characters, such as a space, _, @, *, ^, %, !, $, #, or &.

WINDOWS Especifica que el inicio de sesión se asigna a un inicio de sesión de Windows.WINDOWS Specifies that the login be mapped to a Windows login.

ObservacionesRemarks

  • En las contraseñas se distingue entre mayúsculas y minúsculas.Passwords are case-sensitive.
  • Si se especifica MUST_CHANGE, CHECK_EXPIRATION y CHECK_POLICY, deben establecerse en ON.If MUST_CHANGE is specified, CHECK_EXPIRATION and CHECK_POLICY must be set to ON. Si no es así, la instrucción producirá un error.Otherwise, the statement will fail.
  • No se admite la combinación de CHECK_POLICY = OFF y CHECK_EXPIRATION = ON.A combination of CHECK_POLICY = OFF and CHECK_EXPIRATION = ON is not supported.
  • Cuando CHECK_POLICY se establece en OFF, lockout_time se restablece y CHECK_EXPIRATION se establece en OFF.When CHECK_POLICY is set to OFF, lockout_time is reset and CHECK_EXPIRATION is set to OFF.

Importante

CHECK_EXPIRATION y CHECK_POLICY solo se aplican en Windows Server 2003 y versiones posteriores.CHECK_EXPIRATION and CHECK_POLICY are only enforced on Windows Server 2003 and later. Para obtener más información, vea Password Policy.For more information, see Password Policy.

PermisosPermissions

Solo los usuarios con el permiso ALTER ANY LOGIN en el servidor o la pertenencia al rol fijo de servidor securityadmin pueden crear inicios de sesión.Only users with ALTER ANY LOGIN permission on the server or membership in the securityadmin fixed server role can create logins. Para más información, vea Roles de nivel de servidor y ALTER SERVER ROLE.For more information, see Server-Level Roles and ALTER SERVER ROLE.

Después de crear un inicio de sesiónAfter creating a login

Después de crear un inicio de sesión, este se puede conectar a Azure Synapse Analytics, pero solo tiene los permisos concedidos para el rol public.After creating a login, the login can connect to Azure Synapse Analytics, but only has the permissions granted to the public role. Considere la posibilidad de realizar algunas de las actividades siguientes.Consider performing some of the following activities.

  • Para conectarse a una base de datos, cree una para el inicio de sesión.To connect to a database, create a database user for the login. Para más información, consulte CREATE USER.For more information, see CREATE USER.
  • Cree un rol de servidor definido por el usuario mediante CREATE SERVER ROLE.Create a user-defined server role by using CREATE SERVER ROLE. Use ALTER SERVER ROLE... ADD MEMBER para agregar el nuevo inicio de sesión al rol de servidor definido por el usuario.Use ALTER SERVER ROLE ... ADD MEMBER to add the new login to the user-defined server role. Para obtener más información, vea CREATE SERVER ROLE y ALTER SERVER ROLE.For more information, see CREATE SERVER ROLE and ALTER SERVER ROLE.
  • Utilice sp_addsrvrolemember para agregar el inicio de sesión a un rol fijo de servidor.Use sp_addsrvrolemember to add the login to a fixed server role. Para obtener más información, vea Roles de nivel de servidor y sp_addsrvrolemember.For more information, see Server-Level Roles and sp_addsrvrolemember.
  • Use la instrucción de GRANT, para conceder permisos de servidor al nuevo inicio de sesión o un rol que contiene el inicio de sesión.Use the GRANT statement, to grant server-level permissions to the new login or to a role containing the login. Para obtener más información, vea GRANT.For more information, see GRANT.

EjemplosExamples

G.G. Crear un inicio de sesión de autenticación de SQL Server con una contraseñaCreating a SQL Server authentication login with a password

En el ejemplo siguiente se crea el inicio de sesión Mary7 con la contraseña A2c3456.The following example creates the login Mary7 with password A2c3456.

CREATE LOGIN Mary7 WITH PASSWORD = 'A2c3456$#' ;

H.H. Usar OpcionesUsing Options

En el siguiente ejemplo se crea el inicio de sesión Mary8 con contraseña y algunos de los argumentos opcionales.The following example creates the login Mary8 with password and some of the optional arguments.

CREATE LOGIN Mary8 WITH PASSWORD = 'A2c3456$#' MUST_CHANGE,
CHECK_EXPIRATION = ON,
CHECK_POLICY = ON;

I.I. Crear un inicio de sesión desde una cuenta de dominio de WindowsCreating a login from a Windows domain account

En el ejemplo siguiente se crea un inicio de sesión a partir de una cuenta de dominio de Windows denominada Mary en el dominio Contoso.The following example creates a login from a Windows domain account named Mary in the Contoso domain.

CREATE LOGIN [Contoso\Mary] FROM WINDOWS;
GO

Consulte tambiénSee Also