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

Crée une connexion pour des bases de données SQL Server, SQL Database, SQL Data Warehouse ou Parallel Data Warehouse.Creates a login for SQL Server, SQL Database, SQL Data Warehouse, or Parallel Data Warehouse databases. Cliquez sur l’un des onglets suivants pour accéder à la syntaxe, aux arguments, aux remarques et aux exemples propres à chaque version.Click one of the following tabs for the syntax, arguments, remarks, permissions, and examples for a particular version.

Pour plus d’informations sur les conventions de la syntaxe, consultez Conventions de la syntaxe Transact-SQL.For more information about the syntax conventions, see Transact-SQL Syntax Conventions.

SyntaxeSyntax

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

ArgumentsArguments

login_namelogin_name
Spécifie le nom de la connexion créée.Specifies the name of the login that is created. Il existe quatre types de connexions : connexions SQL Server, connexions Windows, connexions mappées par certificat et connexions mappées par clé asymétrique.There are four types of logins: SQL Server logins, Windows logins, certificate-mapped logins, and asymmetric key-mapped logins. Quand vous créez des connexions mappées à partir d’un compte de domaine Windows, vous devez utiliser le nom d’ouverture de session de l’utilisateur antérieur à Windows 2000 en respectant le format [<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>]. Vous ne pouvez pas utiliser un nom UPN au format login_name@DomainName.You cannot use a UPN in the format login_name@DomainName. Consultez l’exemple D plus loin dans cet article.For an example, see example D later in this article. Les connexions d’authentification sont de type sysname et doivent se conformer aux règles applicables aux identificateurs et ne peuvent pas contenir de barre oblique inverse (\).Authentication logins are type sysname and must conform to the rules for Identifiers and cannot contain a '\'. Les connexions Windows peuvent contenir une barre oblique inverse (\).Windows logins can contain a '\'. Les connexions basées sur les utilisateurs Active Directory sont limitées aux noms de moins de 21 caractères.Logins based on Active Directory users, are limited to names of less than 21 characters.

PASSWORD *='password' S’applique uniquement aux connexions SQL Server.PASSWORD *='password' Applies to SQL Server logins only. Spécifie le mot de passe de la connexion à créer.Specifies the password for the login that is being created. Il est recommandé d'utiliser un mot de passe fort.You should use a strong password. Pour plus d’informations, consultez Mots de passe forts et Stratégie de mot de passe.For more information, see Strong Passwords and Password Policy. À compter de SQL Server 2012 (11.x), les informations de mot de passe stockées sont calculées à l’aide de algorithme SHA-512 du mot de passe salé.Beginning with SQL Server 2012 (11.x),, stored password information is calculated using SHA-512 of the salted password.

Les mots de passe respectent la casse.Passwords are case-sensitive. Les mots de passe doivent comporter au moins 8 caractères, et ne peuvent pas dépasser 128 caractères.Passwords should always be at least 8 characters long, and cannot exceed 128 characters. Les mots de passe peuvent inclure les caractères de A à Z, en minuscules ou en majuscules, les chiffres de 0 à 9 et la plupart des caractères non alphanumériques.Passwords can include a-z, A-Z, 0-9, and most non-alphanumeric characters. Les mots de passe ne peuvent pas contenir de guillemets simples, ni le login_name.Passwords cannot contain single quotes, or the login_name.

PASSWORD =hashed_passwordPASSWORD =hashed_password
S'applique uniquement au mot clé HASHED.Applies to the HASHED keyword only. Spécifie la valeur hachée du mot de passe de la connexion créée.Specifies the hashed value of the password for the login that is being created.

HASHED S’applique uniquement aux connexions SQL Server.HASHED Applies to SQL Server logins only. Spécifie que le mot de passe entré après l'argument PASSWORD est déjà haché.Specifies that the password entered after the PASSWORD argument is already hashed. Si cette option n'est pas sélectionnée, la chaîne de caractères entrée comme mot de passe est hachée avant d'être stockée dans la base de données.If this option is not selected, the string entered as password is hashed before it is stored in the database. Cette option doit être utilisée uniquement pour effectuer une migration de bases de données d'un serveur vers un autre.This option should only be used for migrating databases from one server to another. N'utilisez pas l'option HASHED pour créer des connexions.Do not use the HASHED option to create new logins. L’option HASHED ne peut pas être utilisée avec des hachages créés par SQL 7 ou antérieur.The HASHED option cannot be used with hashes created by SQL 7 or earlier.

MUST_CHANGE S’applique uniquement aux connexions SQL Server.MUST_CHANGE Applies to SQL Server logins only. Si vous incluez cette option, SQL Server demande à l’utilisateur un nouveau mot de passe la première fois que la nouvelle connexion est utilisée.If this option is included, SQL Server prompts the user for a new password the first time the new login is used.

CREDENTIAL =credential_nameCREDENTIAL =credential_name
Nom des informations d’identification à associer à la nouvelle connexion SQL Server.The name of a credential to be mapped to the new SQL Server login. Les informations d'identification doivent déjà exister sur le serveur.The credential must already exist in the server. À l'heure actuelle, cette option lie uniquement l'information d'authentification à une connexion.Currently this option only links the credential to a login. Les informations d’identification ne peuvent pas être mappées à la connexion de l’administrateur système.A credential cannot be mapped to the System Administrator (sa) login.

SID = sidSID = sid
Utilisé pour recréer une connexion.Used to recreate a login. S’applique uniquement aux connexions d’authentification SQL Server, et non aux connexions d’authentification Windows.Applies to SQL Server authentication logins only, not Windows authentication logins. Spécifie le SID de la nouvelle connexion d’authentification SQL Server.Specifies the SID of the new SQL Server authentication login. Si cette option n’est pas sélectionnée, SQL Server attribue automatiquement un SID.If this option is not used, SQL Server automatically assigns a SID. La structure SID dépend de la version de SQL Server.The SID structure depends on the SQL Server version. SID de connexion SQL Server : valeur littérale 16 octets (binary(16)) basée sur un GUID.SQL Server login SID: a 16 byte (binary(16)) literal value based on a GUID. Par exemple, SID = 0x14585E90117152449347750164BA00A7.For example, SID = 0x14585E90117152449347750164BA00A7.

DEFAULT_DATABASE =databaseDEFAULT_DATABASE =database
Spécifie la base de données par défaut à affecter à la connexion.Specifies the default database to be assigned to the login. Si cette option est omise, la base de données par défaut est master.If this option is not included, the default database is set to master.

DEFAULT_LANGUAGE =languageDEFAULT_LANGUAGE =language
Spécifie la langue par défaut à affecter à la connexion.Specifies the default language to be assigned to the login. Si cette option est omise, la langue par défaut est la langue par défaut actuellement définie pour le serveur.If this option is not included, the default language is set to the current default language of the server. Si la langue par défaut du serveur est changée par la suite, la langue par défaut de la connexion reste la même.If the default language of the server is later changed, the default language of the login remains unchanged.

CHECK_EXPIRATION = { ON | OFF }CHECK_EXPIRATION = { ON | OFF }
S’applique uniquement aux connexions SQL Server.Applies to SQL Server logins only. Spécifie si les règles d'expiration des mots de passe doivent être imposées sur cette connexion.Specifies whether password expiration policy should be enforced on this login. La valeur par défaut est OFF.The default value is OFF.

CHECK_POLICY = { ON | OFF }CHECK_POLICY = { ON | OFF }
S’applique uniquement aux connexions SQL Server.Applies to SQL Server logins only. Spécifie que les stratégies de mot de passe Windows de l’ordinateur sur lequel SQL Server s’exécute doivent s’appliquer à cette connexion.Specifies that the Windows password policies of the computer on which SQL Server is running should be enforced on this login. La valeur par défaut est ON.The default value is ON.

Si la stratégie windows requiert des mots de passe forts, les mots de passe doivent avoir au moins trois des quatre caractéristiques suivantes :If the Windows policy requires strong passwords, passwords must contain at least three of the following four characteristics:

  • Une majuscule (A-Z).An uppercase character (A-Z).
  • Une minuscule (a-z).A lowercase character (a-z).
  • Un chiffre (0-9).A digit (0-9).
  • Un des caractères non alphanumériques, tels qu'un espace, , @, *, ^, % ! , $, # ou &.One of the non-alphanumeric characters, such as a space, , @, *, ^, %, !, $, #, or &.

WINDOWSWINDOWS
Spécifie que la connexion doit être mappée sur une connexion Windows.Specifies that the login be mapped to a Windows login.

CERTIFICATE certnameCERTIFICATE certname
Spécifie le nom d'un certificat à associer à cette connexion.Specifies the name of a certificate to be associated with this login. Ce certificat doit déjà se trouver dans la base de données master.This certificate must already occur in the master database.

ASYMMETRIC KEY asym_key_nameASYMMETRIC KEY asym_key_name
Spécifie le nom d'une clé asymétrique à associer à cette connexion.Specifies the name of an asymmetric key to be associated with this login. Cette clé doit déjà se trouver dans la base de données master.This key must already occur in the master database.

Notes Remarks

  • Les mots de passe respectent la casse.Passwords are case-sensitive.
  • Le hachage préalable des mots de passe est pris en charge uniquement quand vous créez des connexions SQL Server.Prehashing of passwords is supported only when you are creating SQL Server logins.
  • Si MUST_CHANGE est spécifié, CHECK_EXPIRATION et CHECK_POLICY doivent prendre la valeur ON.If MUST_CHANGE is specified, CHECK_EXPIRATION and CHECK_POLICY must be set to ON. Sans quoi, l'instruction échoue.Otherwise, the statement will fail.
  • La combinaison CHECK_POLICY = OFF et CHECK_EXPIRATION = ON n'est pas prise en charge.A combination of CHECK_POLICY = OFF and CHECK_EXPIRATION = ON is not supported.
  • Quand CHECK_POLICY a la valeur OFF, lockout_time est réinitialisé et CHECK_EXPIRATION prend la valeur OFF.When CHECK_POLICY is set to OFF, lockout_time is reset and CHECK_EXPIRATION is set to OFF.

Important

CHECK_EXPIRATION et CHECK_POLICY sont uniquement appliqués à Windows Server 2003 et ultérieur.CHECK_EXPIRATION and CHECK_POLICY are only enforced on Windows Server 2003 and later. Pour plus d'informations, consultez Password Policy.For more information, see Password Policy.

AutorisationsPermissions

Après la création d’une connexionAfter creating a login

Après la création d’une connexion, celle-ci peut se connecter à SQL Server, mais elle dispose uniquement des autorisations accordées au rôle public.After creating a login, the login can connect to SQL Server, but only has the permissions granted to the public role. Envisagez d’effectuer certaines des activités suivantes.Consider performing some of the following activities.

  • Pour vous connecter à une base de données, créez un utilisateur de base de données pour la connexion.To connect to a database, create a database user for the login. Pour plus d’informations, consultez CREATE USER.For more information, see CREATE USER.

  • Créez un rôle serveur défini par l’utilisateur à l’aide de CREATE SERVER ROLE.Create a user-defined server role by using CREATE SERVER ROLE. Utilisez ALTER SERVER ROLE ...Use ALTER SERVER ROLE ADD MEMBER pour ajouter la nouvelle connexion au rôle serveur défini par l’utilisateur.ADD MEMBER to add the new login to the user-defined server role. Pour plus d’informations, consultez CREATE SERVER ROLE et ALTER SERVER ROLE.For more information, see CREATE SERVER ROLE and ALTER SERVER ROLE.

  • Utilisez sp_addsrvrolemember pour ajouter la connexion à un rôle serveur fixe.Use sp_addsrvrolemember to add the login to a fixed server role. Pour plus d’informations, consultez Rôles de niveau serveur et sp_addsrvrolemember.For more information, see Server-Level Roles and sp_addsrvrolemember.

  • Utilisez l’instruction GRANT pour accorder des autorisations au niveau du serveur à la nouvelle connexion ou à un rôle qui contient la connexion.Use the GRANT statement, to grant server-level permissions to the new login or to a role containing the login. Pour plus d’informations, consultez GRANT.For more information, see GRANT.

ExemplesExamples

A.A. Création d'une connexion avec un mot de passeCreating a login with a password

L'exemple suivant crée une connexion pour un utilisateur particulier et attribue un mot de passe.The following example creates a login for a particular user and assigns a password.

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

B.B. Création d’une connexion avec un mot de passe qui doit être changéCreating a login with a password that must be changed

L'exemple suivant crée une connexion pour un utilisateur particulier et attribue un mot de passe.The following example creates a login for a particular user and assigns a password. L'option MUST_CHANGE exige que les utilisateurs modifient ce mot de passe la première fois qu'ils se connectent au serveur.The MUST_CHANGE option requires users to change this password the first time they connect to the server.

S'applique à: SQL Server 2008SQL Server 2008 jusqu'à SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

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

Note

L'option MUST_CHANGE ne peut être utilisée lorsque l'option CHECK_EXPIRATION est désactivée.The MUST_CHANGE option cannot be used when CHECK_EXPIRATION is OFF.

C.C. Création d'une connexion mappée sur une information d'identificationCreating a login mapped to a credential

L'exemple suivant crée la connexion pour un utilisateur particulier, à l'aide de l'utilisateur.The following example creates the login for a particular user, using the user. Cette connexion est mappée à l'information d'identification.This login is mapped to the credential.

S'applique à: SQL Server 2008SQL Server 2008 jusqu'à SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

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

D.D. Création d'une connexion à partir d'un certificatCreating a login from a certificate

L’exemple suivant crée la connexion pour un utilisateur particulier à partir d’un certificat dans master.The following example creates login for a particular user from a certificate in master.

S'applique à: SQL Server 2008SQL Server 2008 jusqu'à SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

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. Création d'une connexion à partir d'un compte de domaine WindowsCreating a login from a Windows domain account

L'exemple suivant crée une connexion à partir d'un compte de domaine Windows.The following example creates a login from a Windows domain account.

S'applique à: SQL Server 2008SQL Server 2008 jusqu'à SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

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

F.F. Création d'une connexion à partir d'un SIDCreating a login from a SID

L’exemple suivant crée d’abord une connexion d’authentification SQL Server et détermine le SID de la connexion.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  

Ma requête retourne 0x241C11948AEEB749B0D22646DB1A19F2 comme SID.My query returns 0x241C11948AEEB749B0D22646DB1A19F2 as the SID. Votre requête retourne une valeur différente.Your query will return a different value. Les instructions suivantes suppriment la connexion, puis recréent la connexion.The following statements delete the login, and then recreate the login. Utilisez le SID de votre requête précédente.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  

Voir aussiSee Also