Partager via


CREATE LOGIN (Transact-SQL)

 

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

S'applique à : SQL Server (SQL Server 2008 et version actuelle), Base de données Azure SQL.

Icône Lien de rubriqueConventions de la syntaxe Transact-SQL

Syntaxe

-- SQL Server Syntax
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

-- Syntax for Windows Azure SQL Database

CREATE LOGIN login_name
 { WITH <option_list3> }

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

Arguments

  • login_name
    Spécifie le nom de la connexion créée. Il existe quatre types de connexions : connexions SQL Server, connexions Windows, connexions mappées par certificat et 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. Consultez l'exemple D plus loin dans cette rubrique. Les connexions d'authentification SQL Server sont de type sysname et doivent se conformer aux règles applicables aux 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 à : SQL Server 2008 et SQL Server 2014.

    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 à : SQL Server 2008 et SQL Server 2014.

    S'applique uniquement aux connexions SQL Server. Spécifie que le mot de passe entré après l'argument PASSWORD est déjà haché. 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. 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 à : SQL Server 2008 et SQL Server 2014.

    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

    S'applique à : SQL Server 2008 et SQL Server 2014.

    Nom des informations d'identification à associer à la nouvelle connexion SQL Server. Les informations d'identification doivent déjà exister sur le serveur. À l'heure actuelle, cette option lie uniquement l'information d'authentification à une connexion. Les informations d'identification ne peuvent pas être mappées à la connexion sa.

  • SID = sid
    Utilisé pour recréer une connexion. S'applique aux connexions d'authentification SQL Server uniquement, pas aux connexions d'authentification Windows. Spécifie le SID de la nouvelle connexion d'authentification SQL Server. Si cette option n'est pas sélectionnée, SQL Server attribue automatiquement un SID. La structure SID varie selon la version SQL Server.

    • SID de connexion SQL Server : valeur littérale 16 octets (binary(16)) basée sur un GUID. Par exemple, SID = 0x14585E90117152449347750164BA00A7.

    • SID de connexion Base de données SQL : structure SID valide pour Base de données Azure SQL. Il s'agit généralement d'un littéral 32 octets (binary(32)) composé de 0x01060000000000640000000000000000 plus 16 octets représentant un GUID. Par exemple, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

  • DEFAULT_DATABASE **=**database

    S'applique à : SQL Server 2008 et SQL Server 2014.

    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

    S'applique à : SQL Server 2008 et SQL Server 2014.

    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 à : SQL Server 2008 et SQL Server 2014.

    S'applique uniquement aux connexions SQL Server. Spécifie si les règles d'expiration des mots de passe doivent être imposées sur cette connexion. La valeur par défaut est OFF.

  • CHECK_POLICY = { ON | OFF }

    S'applique à : SQL Server 2008 et SQL Server 2014.

    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

    S'applique à : SQL Server 2008 et SQL Server 2014.

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

  • CERTIFICATE certname

    S'applique à : SQL Server 2008 et SQL Server 2014.

    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

    S'applique à : SQL Server 2008 et SQL Server 2014.

    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 les deux arguments HASHED et CHECK_POLICY = ON sont spécifiés, la complexité du mot de passe n'est pas vérifiée jusqu'à la prochaine modification du mot de passe.

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

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

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

Les règles SQL Server permettent de créer une connexion d'authentification SQL Server au format <nom_connexion>@&<nom_serveur>. Si votre serveur Base de données SQL est myazureserver et que votre connexion est myemail@live.com, vous devez fournir votre identifiant de connexion en tant que myemail@live.com@myazureserver. Utilisez cette technique uniquement si vous prévoyez d'utiliser ces informations d'identification pour la connexion à un serveur unique. Certaines anciennes versions des bibliothèques de client SQL nécessitent l'utilisation du format <nom_connexion>@<nom_serveur> lors de la connexion à la base de données SQL Azure.

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, nécessite l'autorisation ALTER ANY LOGIN sur le serveur ou l'appartenance au rôle serveur fixe securityadmin.

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 ou à Base de données SQL, 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

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

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.

S'applique à : SQL Server 2008 et SQL Server 2014.

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

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

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.

S'applique à : SQL Server 2008 et SQL Server 2014.

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

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

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

S'applique à : SQL Server 2008 et SQL Server 2014.

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

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

S'applique à : SQL Server 2008 et SQL Server 2014.

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

F. Création d'une connexion à partir d'un SID

L'exemple suivant crée d'abord une connexion d'authentification SQL Server et détermine le SID de la connexion.

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

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

Ma requête retourne 0x241C11948AEEB749B0D22646DB1A19F2 comme SID. Votre requête retourne une valeur différente. Les instructions suivantes suppriment la connexion, puis recréent la connexion. Utilisez le SID de votre requête précédente.

DROP LOGIN TestLogin;
GO

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

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

Voir aussi

Principaux (moteur de base de données)
Stratégie de mot de passe
ALTER LOGIN (Transact-SQL)
DROP LOGIN (Transact-SQL)
EVENTDATA (Transact-SQL)
Créer un compte de connexion