CREATE LOGIN (Transact-SQL)

Crée une connexion de Moteur de base de données pour SQL Server, Base de données SQL Windows Azure et SQL Server PDW.

[!REMARQUE]

Les options CREATE LOGIN varient pour SQL Server, Base de données SQL et SQL Server PDW.

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL

Syntaxe

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

Syntaxe

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

<option_list3> ::= 
    PASSWORD = { 'password' }

Syntaxe

-- Syntax for SQL Server PDW
CREATE LOGIN login_name { WITH <option_list4> }

< option_list4> ::= 
    PASSWORD = { 'password' } [ MUST_CHANGE ]
    [ , <option_list5> [ ,... ] ]

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

Arguments

  • login_name
    Spécifie le nom de la connexion créée. Il existe quatre types de connexions : les connexions SQL Server, les connexions Windows, les connexions mappées par certificat et les connexions mappées par clé asymétrique. Lorsque 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 [<Nom_domaine>\<Nom_connexion>]. Vous ne pouvez pas utiliser de nom UPN au format Nom_connexion@Nom_domaine. Pour obtenir un exemple, consultez l'exemple D plus loin dans cette rubrique. Les connexions d'authentification SQL Server sont de type sysname, doivent se conformer aux règles des identificateurs et ne peuvent pas contenir de barre oblique inverse (\). Les connexions Windows peuvent contenir une barre oblique inverse (\).

  • PASSWORD ='password'
    S'applique uniquement aux connexions SQL Server. Spécifie le mot de passe de la connexion à créer. Il est recommandé d'utiliser un mot de passe fort. Pour plus d'informations, consultez Mots de passe forts et Stratégie de mot de passe.

    Les mots de passe respectent la casse. Les mots de passe doivent comporter au moins 8 caractères, et ne peuvent pas dépasser 128 caractères. 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. Les mots de passe ne peuvent pas contenir de guillemets simples, ni login_name.

  • PASSWORD **=**hashed_password
    S'applique uniquement au mot clé HASHED. Spécifie la valeur hachée du mot de passe de la connexion créée.

  • HASHED
    S'applique uniquement aux connexions SQL Server. Spécifie que le mot de passe entré après l'argument PASSWORD doit être déjà haché. Si cette option n'est pas sélectionnée, la chaîne entrée comme mot de passe est hachée avant d'être stockée dans la base de données. Cette option doit être utilisée uniquement pour effectuer une migration de bases de données d'un serveur vers un autre. N'utilisez pas l'option HASHED pour créer des connexions. L'option HASHED ne peut pas être utilisée avec des hachages créés par SQL Server 7 ou antérieur,

  • MUST_CHANGE
    S'applique uniquement aux connexions SQL Server. Si vous incluez cette option, SQL Server demande à l'utilisateur un nouveau mot de passe lors de la première utilisation de la nouvelle connexion.

  • CREDENTIAL **=**credential_name
    Nom des informations d'identification à associer à la nouvelle connexion SQL Server. Les informations d'identification doivent déjà être présentes sur le serveur. Actuellement, cette option lie uniquement la référence à une connexion. Les informations d'identification ne peuvent pas être mappées à la connexion sa.

  • SID = sid
    S'applique uniquement aux connexions SQL Server. Spécifie le GUID de la nouvelle connexion SQL Server. Si cette option n'est pas sélectionnée, SQL Server attribue automatiquement un GUID.

  • DEFAULT_DATABASE **=**database
    Spécifie la base de données par défaut à affecter à la connexion. Si cette option est omise, la base de données par défaut est master.

  • DEFAULT_LANGUAGE **=**language
    Spécifie la langue par défaut à affecter à la connexion. Si cette option est omise, la langue par défaut est la langue par défaut actuellement définie pour le serveur. 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.

  • CHECK_EXPIRATION = { ON | OFF }
    S'applique uniquement aux connexions SQL Server. Spécifie si la stratégie d'expiration de mot de passe doit être imposée sur cette connexion. La valeur par défaut est OFF.

  • CHECK_POLICY = { ON | OFF }
    S'applique uniquement aux connexions SQL Server. Spécifie que les stratégies de mot de passe Windows de l'ordinateur sur lequel SQL Server s'exécute doivent être imposées sur cette connexion. La valeur par défaut est 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 :

    • Une majuscule (A-Z).

    • Une minuscule (a-z).

    • Un chiffre (0-9).

    • Un des caractères non alphanumériques, tels qu'un espace, _, @, *, ^, % ! , $, # ou &.

  • WINDOWS
    Spécifie que la connexion doit être mappée sur une connexion Windows.

  • CERTIFICATE certname
    Spécifie le nom d'un certificat à associer à cette connexion. Ce certificat doit déjà se trouver dans la base de données master.

  • ASYMMETRIC KEY asym_key_name
    Spécifie le nom d'une clé asymétrique à associer à cette connexion. Cette clé doit déjà se trouver dans la base de données master.

Notes

Les mots de passe respectent la casse.

Le hachage préalable des mots de passe est pris en charge uniquement lorsque vous créez des connexions SQL Server.

Si MUST_CHANGE est spécifié, CHECK_EXPIRATION et CHECK_POLICY doivent prendre la valeur ON. Sans quoi, l'instruction échoue.

La combinaison CHECK_POLICY = OFF et CHECK_EXPIRATION = ON n'est pas prise en charge.

Lorsque CHECK_POLICY prend la valeur OFF, lockout_time est réinitialisé et CHECK_EXPIRATION prend la valeur OFF.

Important

CHECK_EXPIRATION et CHECK_POLICY sont imposés uniquement sur Windows Server 2003 et les versions ultérieures. Pour plus d'informations, consultez Stratégie de mot de passe.

Les connexions créées à partir de certificats ou de clés asymétriques ne sont utilisées que pour la signature de code. Elles ne peuvent pas être utilisées pour se connecter à SQL Server. Vous pouvez créer une connexion à partir d'un certificat ou d'une clé asymétrique uniquement lorsque ceux-ci existent déjà dans la base de données master.

Pour obtenir un script de transfert des connexions, consultez Comment transférer les connexions et les mots de passe entre des instances de SQL Server 2005 et SQL Server 2008.

La création d'une connexion active automatiquement la nouvelle connexion et accorde à la connexion l'autorisation CONNECT SQL au niveau du serveur.

Connexions à une base de données SQL

Dans Base de données SQL, l'instruction CREATE LOGIN doit être la seule instruction d'un traitement.

Dans certaines méthodes de connexion à Base de données SQL, comme sqlcmd, vous devez ajouter le nom du serveur Base de données SQL au nom de connexion dans la chaîne de connexion à l'aide de la notation <login>@<server>. Par exemple, si votre connexion est login1 et le nom complet du serveur Base de données SQL est servername.database.windows.net, le paramètre username de la chaîne de connexion doit être login1@servername. Puisque la longueur totale du paramètre username est de 128 caractères, login_name est limité à 127 caractères moins la longueur du nom du serveur. Dans l'exemple, login_name peut contenir seulement 117 caractères car servername inclut 10 caractères.

Dans Base de données SQL, vous devez être connecté à la base de données master pour créer une connexion.

Pour plus d'informations sur les connexions Base de données SQL, consultez Gestion des bases de données et des connexions dans une base de données SQL Windows Azure.

Autorisations

Dans SQL Server et SQL Server PDW, l'autorisation ALTER ANY LOGIN sur le serveur ou l'appartenance au rôle de serveur fixe securityadmin sont requis.

Dans Base de données SQL, seule la connexion principale au niveau du serveur (créée par le processus de configuration) ou les membres du rôle de base de données loginmanager dans la base de données master peuvent créer de nouvelles connexions.

Si l'option CREDENTIAL est utilisée, l'autorisation ALTER ANY CREDENTIAL est également exigée sur le serveur.

Étapes suivantes

Après la création d'une connexion, celle-ci peut se connecter au Moteur de base de données, à Base de données SQL ou à l'appareil SQL Server PDW, mais dispose uniquement des autorisations accordées au rôle public. Envisagez d'effectuer certaines des activités suivantes.

Exemples

A. Création d'une connexion avec un mot de passe

S'applique à tous.

L'exemple suivant crée une connexion pour un utilisateur particulier et attribue un mot de passe.

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

B. Création d'une connexion avec un mot de passe

S'applique à SQL Server et SQL Server PDW.

L'exemple suivant crée une connexion pour un utilisateur particulier et attribue un mot de passe. L'option MUST_CHANGE exige que les utilisateurs modifient ce mot de passe la première fois qu'ils se connectent au serveur.

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

C. Création d'une connexion mappée sur une information d'identification

S'applique à SQL Server.

L'exemple suivant crée la connexion pour un utilisateur particulier, à l'aide de l'utilisateur. Cette connexion est mappée à l'information d'identification.

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

D. Création d'une connexion à partir d'un certificat

S'applique à SQL Server.

L'exemple suivant crée la connexion pour un utilisateur particulier à partir d'un certificat dans master.

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. Création d'une connexion à partir d'un compte de domaine Windows

S'applique à SQL Server.

L'exemple suivant crée une connexion à partir d'un compte de domaine Windows.

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

Voir aussi

Référence

ALTER LOGIN (Transact-SQL)

DROP LOGIN (Transact-SQL)

EVENTDATA (Transact-SQL)

Concepts

Principaux (moteur de base de données)

Stratégie de mot de passe

Créer un compte de connexion