CREATE LOGIN (Transact-SQL)

 

CETTE RUBRIQUE S’APPLIQUE À : ouiSQL Server (à partir de la version 2008)ouiAzure SQL DatabaseouiAzure SQL Data WarehouseouiParallel Data Warehouse

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

Topic link icon Conventions de la syntaxe Transact-SQL

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

-- Syntax for Azure SQL Database and Azure SQL Data Warehouse  
  
CREATE LOGIN login_name  
 { WITH <option_list3> }  
  
<option_list3> ::=   
    PASSWORD = { 'password' }  
    [ SID = sid ]  

-- Syntax for Parallel Data Warehouse  
  
CREATE LOGIN loginName { WITH <option_list1> | FROM WINDOWS }  
  
<option_list1> ::=   
    PASSWORD = { 'password' } [ MUST_CHANGE ]  
    [ , <option_list2> [ ,... ] ]  
  
<option_list2> ::=    
      CHECK_EXPIRATION = { ON | OFF}  
    | CHECK_POLICY = { ON | OFF}  

nom_connexion
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 qui sont mappées à partir d’un compte de domaine Windows, vous devez utiliser le nom d’ouverture de session d’utilisateur antérieur à Windows 2000 dans le format [<>>\<login_name>].</login_name> Vous ne pouvez pas utiliser un nom UPN au format login_name@DomainName. Consultez l'exemple D plus loin dans cette rubrique. SQL Serverconnexions d’authentification sont de type sysname et doit être conforme aux règles de identificateurs et ne peut pas contenir un '\». 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 Strong Passwords et Password Policy. À partir de SQL Server 2012, stockées les informations de mot de passe sont calculées à l’aide du mot de passe salé SHA-512.

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 peut pas contenir de guillemets simples, ou le login_name.

Mot de passe ** = ** hashed_password

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

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

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

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.

Informations d’identification ** = ** credential_name

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

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. Une information d’identification ne peut pas être mappée à la connexion administrateur système (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 .

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

  • Base de données SQLSID de connexion : structure SID valide pour Base de données Azure SQL. Il s’agit en général un 32 octets (Binary (32)) littéral consistant 0x01060000000000640000000000000000 plus 16 octets représentant un GUID. Par exemple, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

DEFAULT_DATABASE ** = ** base de données

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

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

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

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

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

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

CERTIFICAT certname

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

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

CLÉ asymétrique asym_key_name

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

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.

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 a la valeur OFF, lockout_time est réinitialisé et CHECK_EXPIRATION est désactivée (OFF).

System_CAPS_ICON_important.jpg Important


CHECK_EXPIRATION et CHECK_POLICY sont imposés uniquement sur Windows Server 2003 et les versions ultérieures. Pour plus d'informations, consultez Password Policy.

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.

Pour plus d’informations sur la conception d’un système d’autorisations, voir Getting Started with Database Engine Permissions.

Dans Base de données SQL, le CREATE LOGIN instruction doit être la seule instruction dans un lot.

Dans certaines méthodes de connexion à Base de données SQL, tel que sqlcmd, vous devez ajouter le Base de données SQL nom du serveur pour le nom de connexion dans la chaîne de connexion à l’aide de la * <> > * @ * <> > * notation. Par exemple, si votre connexion est login1 et le nom qualifié complet de le Base de données SQL server est servername.database.windows.net, le nom d’utilisateur paramètre de la chaîne de connexion doit être login1@servername. Étant donné que la longueur totale de la nom d’utilisateur paramètre est de 128 caractères, login_name est limitée à 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 et SQL Data Warehouse vous devez être connecté à la base de données master pour créer une connexion.

SQL Serverles règles vous permettent de créer un SQL Server connexion d’authentification dans le format <> </> >@<>>. Si votre Base de données SQL server est myazureserver et votre connexion est ** myemail@live.com **, vous devez fournir votre nom d’utilisateur en tant que ** myemail@live.com @myazureserver **.

Dans Base de données SQL, les données de connexion requises pour authentifier une connexion et les règles de pare-feu de niveau serveur sont temporairement cachées dans chaque base de données. Ce cache est actualisé périodiquement. Pour forcer une actualisation du cache d’authentification et vous assurer qu’une base de données a la dernière version de la table des connexions, exécuter DBCC FLUSHAUTHCACHE (Transact-SQL).

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.

Dans SQL Server, nécessite ALTER ANY LOGIN sur le serveur ou l’appartenance dans le securityadmin rôle serveur fixe.

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.

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.

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 2016.
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 2016.
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 une connexion pour un utilisateur particulier à partir d’un certificat dans master.

S'applique à: SQL Server 2008 et SQL Server 2016.
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 2016.
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 que le 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  

G. Création d’une connexion d’authentification SQL Server avec un mot de passe

L’exemple suivant crée la connexion Mary7 avec le mot de passe A2c3456.

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

H. À l’aide des Options

L’exemple suivant crée la connexion Mary8 avec le mot de passe de certains des arguments facultatifs.

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

I. 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 nommé Mary dans les Contoso domaine.

CREATE LOGIN [Contoso\Mary] FROM WINDOWS;  
GO  

Mise en route avec les autorisations de moteur de base de données
Principaux (moteur de base de données)
Stratégie de mot de passe
ALTER LOGIN (Transact-SQL)
SUPPRIMER la connexion (Transact-SQL)
EVENTDATA (Transact-SQL)
Créer une connexion

Ajouts de la communauté

AJOUTER
Afficher: