CREATE LOGIN (Transact-SQL)

Crée une connexion pour des bases de données SQL Server, SQL Database, Azure Synapse Analytics ou Analytics Platform System. Cliquez sur l’un des onglets suivants pour accéder à la syntaxe, aux arguments, aux remarques et aux exemples propres à chaque version.

CREATE LOGIN participe aux transactions. Si CREATE LOGIN est exécutée dans une transaction et que la transaction est restaurée, la création de la connexion est restaurée. Si elle est exécutée dans une transaction, la connexion créée ne peut pas être utilisée jusqu’à ce que la transaction soit validée.

Pour plus d’informations sur les conventions de la syntaxe, consultez Conventions de la syntaxe Transact-SQL.

Sélectionner un produit

Sur la ligne suivante, sélectionnez le nom du produit qui vous intéresse afin d’afficher uniquement les informations qui le concernent.

* SQL Server *  

 

SQL Server

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

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. Quand vous créez des comptes de connexion mappés à 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>]. Vous ne pouvez pas utiliser de nom UPN au format Nom_connexion@Nom_domaine. Consultez l’exemple D plus loin dans cet 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 ( \ ). Les connexions Windows peuvent contenir une barre oblique inverse ( \ ). Les connexions basées sur des utilisateurs Active Directory sont limités aux noms de moins de 21 caractères.

PASSWORD ='mot de passe'

S’applique uniquement aux connexions SQL Server. Spécifie le mot de passe de la connexion à créer. Utilisez un mot de passe fort. Pour plus d’informations, consultez Mots de passe forts et Stratégie de mot de passe. Depuis SQL Server 2012 (11.x), les informations de mot de passe stockées sont calculées à l’aide de la valeur salt SHA-512 du mot de passe.

Les mots de passe respectent la casse. Les mots de passe doivent comporter au moins huit 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 le 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 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 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 la première fois que la nouvelle connexion est utilisée.

CREDENTIAL =credential_name

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 de l’administrateur système.

SID = sid

Utilisé pour recréer une connexion. S’applique uniquement aux connexions d’authentification SQL Server, et non 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 dépend de la version de SQL Server. SID de connexion SQL Server : valeur littérale 16 octets (binary(16) ) basée sur un GUID. Par exemple : SID = 0x14585E90117152449347750164BA00A7.

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 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 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 s’appliquer à 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, à savoir 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 quand 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.
  • Quand CHECK_POLICY a la valeur OFF, lockout_time est réinitialisé et CHECK_EXPIRATION prend la valeur OFF.

Important

CHECK_EXPIRATION et CHECK_POLICY sont uniquement appliqués à Windows Server 2003 et ultérieur. Pour plus d'informations, consultez Password Policy.

Autorisations

  • Seuls les utilisateurs ayant l’autorisation ALTER ANY LOGIN sur le serveur ou appartenant au rôle serveur fixe securityadmin peuvent créer des connexions. Pour plus d’informations, consultez Rôles de niveau serveur et ALTER SERVER ROLE.
  • 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

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. Envisagez d’effectuer certaines des activités suivantes.

  • Pour vous connecter à une base de données, créez un utilisateur de base de données pour la connexion. Pour plus d’informations, consultez CREATE USER.
  • Créez un rôle serveur défini par l’utilisateur à l’aide de CREATE SERVER ROLE. Utilisez ALTER SERVER ROLE ... ADD MEMBER pour ajouter la nouvelle connexion au rôle serveur défini par l’utilisateur. Pour plus d’informations, consultez CREATE SERVER ROLE et ALTER SERVER ROLE.
  • Utilisez sp_addsrvrolemember pour ajouter la connexion à un rôle serveur fixe. Pour plus d’informations, consultez Rôles de niveau serveur et 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. Pour plus d’informations, consultez GRANT.

Exemples

R. 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 qui doit être changé

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 versions ultérieures.

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

Notes

L'option MUST_CHANGE ne peut être utilisée lorsque l'option CHECK_EXPIRATION est désactivée.

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 versions ultérieures.

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 versions ultérieures.

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 versions ultérieures.

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

G. Création d’une connexion avec plusieurs arguments

L’exemple suivant montre comment relier plusieurs arguments à l’aide de virgules entre chaque argument.

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

H. Création d’une connexion SQL avec hachage de mot de passe

L’exemple suivant montre comment créer des connexions SQL avec le même mot de passe que les connexions existantes, comme dans un scénario de migration. La première étape consiste à récupérer le hachage de mot de passe à partir des connexions existantes sur le serveur de base de données source. Le même hachage est utilisé pour créer la connexion sur un nouveau serveur de base de données. Ainsi, la nouvelle connexion possède le même mot de passe que l’ancien serveur.

-- run this to retrieve the password hash for an individual Login:
SELECT LOGINPROPERTY('Andreas','PASSWORDHASH') AS password_hash;
-- as an alternative, the catalog view sys.sql_logins can be used to retrieve the password hashes for multiple accounts at once. (This could be used to create a dynamic sql statemnt from the result set)
SELECT name, password_hash
FROM sys.sql_logins
  WHERE
    principal_id > 1    -- excluding sa
    AND
    name NOT LIKE '##MS_%##' -- excluding special MS system accounts
-- create the new SQL Login on the new database server using the hash of the source server
CREATE LOGIN Andreas
  WITH PASSWORD = 0x02000A1A89CD6C6E4C8B30A282354C8EA0860719D5D3AD05E0CAE1952A1C6107A4ED26BEBA2A13B12FAB5093B3CC2A1055910CC0F4B9686A358604E99BB9933C75B4EA48FDEA HASHED;

Voir aussi

* Azure SQL Database *

 

SQL Database

Syntaxe

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

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

Arguments

login_name

Notes

Les principaux de serveur Azure Active Directory (Azure AD) (comptes de connexion) sont actuellement en préversion publique pour Azure SQL Database.

En cas d’utilisation avec la clause FROM EXTERNAL PROVIDER, le compte de connexion spécifie le principal Azure Active Directory (AD), qui est un utilisateur, un groupe ou une application Azure AD. Autrement, la connexion représente le nom de la connexion SQL qui a été créée.

Les utilisateurs Azure AD et les principaux de service (applications Azure AD) membres de plus de 2048 groupes de sécurité Azure AD ne sont pas pris en charge pour se connecter à la base de données dans SQL Database, Managed Instance ou Azure Synapse.

FROM EXTERNAL PROVIDER

Spécifie que la connexion concerne l’authentification Azure AD.

PASSWORD *='mot de passe'

Spécifie le mot de passe de la connexion SQL en cours de création. Utilisez un mot de passe fort. Pour plus d’informations, consultez Mots de passe forts et Stratégie de mot de passe. Depuis SQL Server 2012 (11.x), les informations de mot de passe stockées sont calculées à l’aide de la valeur salt SHA-512 du mot de passe.

Les mots de passe respectent la casse. Les mots de passe doivent comporter au moins huit 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 le login_name.

SID = sid

Utilisé pour recréer une connexion. S’applique uniquement aux connexions d’authentification SQL Server, et non 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 dépend de la version de SQL Server. Pour SQL Database, il s’agit d’un littéral 32 octets (binary(32) ) composé de 0x01060000000000640000000000000000 plus 16 octets représentant un GUID. Par exemple : SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

Notes

  • Les mots de passe respectent la casse.
  • La création d'une connexion active automatiquement la nouvelle connexion et accorde à la connexion l'autorisation CONNECT SQL au niveau du serveur.

Important

Pour plus d’informations sur l’utilisation des connexions et des utilisateurs dans Azure SQL Database, consultez Gérer des connexions dans Azure SQL Database.

Connexion

Connexions à une base de données SQL

L’instruction CREATE LOGIN doit être la seule instruction d’un traitement.

Dans certaines méthodes de connexion à SQL Database, comme sqlcmd, vous devez ajouter le nom du serveur SQL Database au nom de connexion dans la chaîne de connexion à l’aide de la notation <connexion>@<serveur>. Par exemple, si votre connexion est login1 et que le nom complet du serveur SQL Database 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 SQL Database, vous devez être connecté à la base de données MASTER avec les autorisations appropriées pour créer une connexion. Pour plus d’informations, consultez Créer des connexions et des utilisateurs supplémentaires disposant d’autorisations administratives.

Les règles SQL Server permettent de créer une connexion d’authentification SQL Server au format <loginname>@<servername>. Si votre serveur SQL Database est myazureserver et que votre compte de connexion est myemail@live.com, vous devez fournir votre compte de connexion comme suit : myemail@live.com@myazureserver.

Dans SQL Database, les données de connexion exigées pour authentifier une connexion et les règles de pare-feu de niveau serveur sont temporairement mises en cache dans chaque base de données. Ce cache est régulièrement actualisé. Pour forcer une actualisation du cache d’authentification et garantir qu’une base de données a la version la plus récente de la table de connexions, exécutez DBCC FLUSHAUTHCACHE.

Autorisations

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 des connexions. Pour plus d’informations, consultez Créer des connexions et des utilisateurs supplémentaires disposant d’autorisations administratives.

Exemples

R. 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 à 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

C. Créer un compte de connexion à l’aide d’un compte Azure AD

L’exemple suivant crée un compte connexion dans le serveur logique SQL Database, bob@contoso.com qui existe dans le domaine Azure AD appelé contoso.

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

Voir aussi

* Azure SQL
Managed Instance *

 

Azure SQL Managed Instance

Syntaxe

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

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

Arguments

login_name

En cas d’utilisation avec la clause FROM EXTERNAL PROVIDER, le compte de connexion spécifie le principal Azure Active Directory (AD), qui est un utilisateur, un groupe ou une application Azure AD. Autrement, la connexion représente le nom de la connexion SQL qui a été créée.

Les utilisateurs Azure AD et les principaux de service (applications Azure AD) membres de plus de 2048 groupes de sécurité Azure AD ne sont pas pris en charge pour se connecter à la base de données dans SQL Database, Managed Instance ou Azure Synapse.

FROM EXTERNAL PROVIDER

Spécifie que la connexion concerne l’authentification Azure AD.

PASSWORD = 'mot de passe'

Spécifie le mot de passe de la connexion SQL en cours de création. Utilisez un mot de passe fort. Pour plus d’informations, consultez Mots de passe forts et Stratégie de mot de passe. Depuis SQL Server 2012 (11.x), les informations de mot de passe stockées sont calculées à l’aide de la valeur salt SHA-512 du mot de passe.

Les mots de passe respectent la casse. Les mots de passe doivent toujours comporter au moins dix 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 le login_name.

SID =sid

Utilisé pour recréer une connexion. S’applique uniquement aux connexions d’authentification SQL Server. 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 dépend de la version de SQL Server. Pour SQL Database, il s’agit d’un littéral 32 octets (binary(32) ) composé de 0x01060000000000640000000000000000 plus 16 octets représentant un GUID. Par exemple : SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

Notes

  • Les mots de passe respectent la casse.

  • Une nouvelle syntaxe est introduite pour la création de principaux au niveau du serveur mappés à des comptes Azure AD (FROM EXTERNAL PROVIDER)

  • Quand FROM EXTERNAL PROVIDER est spécifié :

    • login_name doit représenter un compte Azure AD existant (utilisateur, groupe ou application) qui est accessible dans Azure AD par l’instance Azure SQL Managed Instance active. Pour les principaux Azure AD, la syntaxe CREATE LOGIN exige les éléments suivants :
      • UserPrincipalName de l’objet Azure AD pour les utilisateurs Azure AD.
      • DisplayName de l’objet Azure AD pour les groupes Azure AD et les applications Azure AD.
    • Vous ne pouvez pas utiliser l’option PASSWORD.
  • Par défaut, quand la clause FROM EXTERNAL PROVIDER est omise, une connexion SQL standard est créée.

  • Les connexions AD Azure sont visibles dans sys.server_principals, avec une valeur de colonne de type définie sur E et une valeur type_desc définie sur EXTERNAL_LOGIN pour les connexions mappées à des utilisateurs d’Azure AD, ou une valeur de colonne de type définie sur X et une valeur type_desc définie sur EXTERNAL_GROUP pour les connexions mappées à des groupes Azure AD.

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

Important

Pour plus d’informations sur l’utilisation des connexions et des utilisateurs dans Azure SQL Database, consultez Gérer des connexions dans Azure SQL Database.

Connexions et autorisations

Seule la connexion principale au niveau du serveur (créée par le processus de provisionnement) ou les membres du rôle de base de données securityadmin ou sysadmin dans la base de données master peuvent créer des connexions. Pour plus d’informations, consultez Rôles de niveau serveur et ALTER SERVER ROLE.

Par défaut, les autorisations standard accordées à une connexion Azure AD nouvellement créée dans master sont : CONNECT SQL et VIEW ANY DATABASE.

Connexions SQL Managed Instance

  • Doit avoir l’autorisation ALTER ANY LOGIN sur le serveur ou l’appartenance au rôle serveur fixe securityadmin ou sysadmin. Seul un compte Azure Active Directory (Azure AD) avec l’autorisation ALTER ANY LOGIN sur le serveur ou l’appartenance à l’un de ces rôles peut exécuter la commande create.
  • Si la connexion est un principal SQL, seules les connexions faisant partie du rôle sysadmin peuvent utiliser la commande create afin de créer des connexions pour un compte Azure AD.
  • Doit être un membre d’Azure AD dans le même répertoire que celui utilisé pour Azure SQL Managed Instance.

Après la création d’une connexion

Notes

La fonctionnalité d’administration Azure AD pour Azure SQL Managed Instance a changé après la création. Pour plus d’informations, consultez Nouvelle fonctionnalité d’administration Azure AD pour MI.

Après la création d’une connexion, celle-ci peut se connecter à une instance managée, mais elle dispose uniquement des autorisations accordées au rôle public. Envisagez d’effectuer certaines des activités suivantes.

  • Pour créer un utilisateur Azure AD à partir d’une connexion Azure AD, consultez CREATE USER.
  • Pour accorder des autorisations à un utilisateur dans une base de données, utilisez ALTER SERVER ROLE ... Instruction ADD MEMBER pour ajouter l’utilisateur à l’un des rôles de base de données intégrés ou à un rôle personnalisé, ou pour accorder directement des autorisations à l’utilisateur à l’aide de l’instruction GRANT. Pour plus d’informations, voir Rôles non administrateurs, Rôles d’administrateur au niveau du serveur supplémentaires, ALTER SERVER ROLE et l’instruction GRANT.
  • Pour accorder des autorisations à l’échelle du serveur, créez un utilisateur de base de données dans la base de données master et utilisez ALTER SERVER ROLE ... Instruction ADD MEMBER pour ajouter l’utilisateur à l’un des rôles serveur d’administration. Pour plus d’informations, consultez Rôles de niveau serveur, ALTER SERVER ROLE et Rôles serveur.
    • Utilisez la commande suivante pour ajouter le rôle sysadmin à une connexion Azure AD : ALTER SERVER ROLE sysadmin ADD MEMBER [AzureAD_Login_name]
  • Utilisez l’instruction GRANT pour accorder des autorisations au niveau du serveur à la nouvelle connexion ou à un rôle qui contient la connexion. Pour plus d’informations, consultez GRANT.

Limites

  • La définition d’une connexion Azure AD mappée à un groupe Azure AD en tant que propriétaire de base de données n’est pas prise en charge.
  • L’emprunt d’identité des principaux au niveau du serveur Azure AD à l’aide d’autres principaux Azure AD est pris en charge, par exemple avec la clause EXECUTE AS.
  • Seuls les principaux (connexions) au niveau du serveur SQL titulaires du rôle sysadmin peuvent exécuter les opérations suivantes ciblant des principaux Azure AD :
    • EXECUTE AS USER
    • EXECUTE AS LOGIN
  • Les utilisateurs externes (invités) importés à partir d’un autre annuaire Azure AD ne peuvent pas être configurés directement comme des administrateurs Azure AD pour SQL Managed Instance à l’aide du portail Azure. Joignez plutôt l’utilisateur externe à un groupe de sécurité Azure AD et configurez le groupe comme administrateur d’instance. Vous pouvez utiliser PowerShell ou Azure CLI pour configurer des utilisateurs invités comme des administrateurs d’instance.
  • La connexion n’est pas répliquée vers l’instance secondaire dans un groupe de basculement. La connexion est enregistrée dans la base de données MASTER, qui est une base de données système et, par conséquent, n’est pas géo-répliquée. Pour résoudre cela, l’utilisateur doit créer une connexion avec le même SID sur l’instance secondaire.
-- Code to create login on the secondary instance
CREATE LOGIN foo WITH PASSWORD = '<enterStrongPasswordHere>', SID = <login_sid>;

Exemples

R. 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 à 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

C. Création d’une connexion pour un compte Azure AD local

L’exemple suivant crée une connexion pour le compte Azure AD joe@myaad.onmicrosoft.com qui existe dans l’annuaire Azure AD de myaad.

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

D. Création d’une connexion pour un compte Azure AD fédéré

L’exemple suivant crée une connexion pour un compte Azure AD fédéré bob@contoso.com qui existe dans l’annuaire Azure AD nommé contoso. L’utilisateur bob peut également être un utilisateur invité.

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

E. Création d’une connexion pour un groupe Azure AD

L’exemple suivant crée une connexion pour le groupe Azure AD mygroup qui existe dans l’annuaire Azure AD de myaad.

CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER
GO

F. Création d’une connexion pour une application Azure AD

L’exemple suivant crée une connexion pour l’application Azure AD myapp qui existe dans l’annuaire Azure AD de myaad.

CREATE LOGIN [myapp] FROM EXTERNAL PROVIDER

G. Vérifier les connexions nouvellement ajoutées

Pour vérifier la connexion qui vient d’être ajoutée, exécutez la commande T-SQL suivante :

SELECT *
FROM sys.server_principals;
GO

Voir aussi

* Azure Synapse
Analytics *

 

Azure Synapse Analytics

Syntaxe

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

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

Arguments

login_name

Spécifie le nom de la connexion créée. SQL Analytics dans Azure Synapse prend uniquement en charge les connexions SQL. Afin de créer des comptes pour les utilisateurs Azure Active Directory, utilisez l’instruction CREATE USER.

PASSWORD *='mot de passe'

Spécifie le mot de passe de la connexion SQL en cours de création. Utilisez un mot de passe fort. Pour plus d’informations, consultez Mots de passe forts et Stratégie de mot de passe. Depuis SQL Server 2012 (11.x), les informations de mot de passe stockées sont calculées à l’aide de la valeur salt SHA-512 du mot de passe.

Les mots de passe respectent la casse. Les mots de passe doivent comporter au moins huit 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 le login_name.

SID = sid

Utilisé pour recréer une connexion. S’applique uniquement aux connexions d’authentification SQL Server, et non 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 dépend de la version de SQL Server. Pour SQL Analytics, il s’agit d’un littéral 32 octets (binary(32) ) composé de 0x01060000000000640000000000000000 plus 16 octets représentant un GUID. Par exemple : SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

Notes

Connexions

L’instruction CREATE LOGIN doit être la seule instruction d’un traitement.

Lorsque vous vous connectez à Azure Synapse en utilisant des outils comme sqlcmd, vous devez ajouter le nom du serveur SQL Analytics à l’ID de connexion dans la chaîne de connexion à l’aide de la notation <compte de connexion>@<serveur>. Par exemple, si votre connexion est login1 et que le nom complet du serveur SQL Analytics 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.

Pour créer une connexion, vous devez être connecté à la base de données master.

Les règles SQL Server permettent de créer une connexion d’authentification SQL Server au format <loginname>@<servername>. Si votre serveur SQL Database est myazureserver et que votre compte de connexion est myemail@live.com, vous devez fournir votre compte de connexion comme suit : myemail@live.com@myazureserver.

Les données de connexion exigées pour authentifier une connexion et les règles de pare-feu au niveau du serveur sont temporairement mises en cache dans chaque base de données. Ce cache est régulièrement actualisé. Pour forcer une actualisation du cache d’authentification et garantir qu’une base de données a la version la plus récente de la table de connexions, exécutez DBCC FLUSHAUTHCACHE.

Pour plus d'informations sur les connexions , consultez Gestion des bases de données et des connexions.

Autorisations

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 des connexions. Pour plus d’informations, consultez Rôles de niveau serveur et ALTER SERVER ROLE.

Après la création d’une connexion

Après la création d’une connexion, celle-ci peut se connecter à Azure Synapse, mais elle dispose uniquement des autorisations accordées au rôle public. Envisagez d’effectuer certaines des activités suivantes.

  • Pour vous connecter à une base de données, créez un utilisateur de base de données pour la connexion. Pour plus d’informations, consultez CREATE USER.

  • Pour accorder des autorisations à un utilisateur dans une base de données, utilisez ALTER SERVER ROLE ... Instruction ADD MEMBER pour ajouter l’utilisateur à l’un des rôles de base de données intégrés ou à un rôle personnalisé, ou pour accorder directement des autorisations à l’utilisateur à l’aide de l’instruction GRANT. Pour plus d’informations, voir Rôles non administrateurs, Rôles d’administrateur au niveau du serveur supplémentaires, ALTER SERVER ROLE et l’instruction GRANT.

  • Pour accorder des autorisations à l’échelle du serveur, créez un utilisateur de base de données dans la base de données master et utilisez ALTER SERVER ROLE ... Instruction ADD MEMBER pour ajouter l’utilisateur à l’un des rôles serveur d’administration. Pour plus d’informations, consultez Rôles de niveau serveur, ALTER SERVER ROLE et Rôles serveur.

  • Utilisez l’instruction GRANT pour accorder des autorisations au niveau du serveur à la nouvelle connexion ou à un rôle qui contient la connexion. Pour plus d’informations, consultez GRANT.

Exemples

R. 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 à 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

* Analytics
Platform System (PDW) *

 

Système de la plateforme d'analyse

Syntaxe

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

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. Quand vous créez des comptes de connexion mappés à 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>]. Vous ne pouvez pas utiliser de nom UPN au format Nom_connexion@Nom_domaine. Consultez l’exemple D plus loin dans cet 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 ( \ ). Les connexions Windows peuvent contenir une barre oblique inverse ( \ ). Les connexions basées sur des utilisateurs Active Directory sont limités aux noms de moins de 21 caractères.

PASSWORD ='password'

S’applique uniquement aux connexions SQL Server. Spécifie le mot de passe de la connexion à créer. Utilisez un mot de passe fort. Pour plus d’informations, consultez Mots de passe forts et Stratégie de mot de passe. Depuis SQL Server 2012 (11.x), les informations de mot de passe stockées sont calculées à l’aide de la valeur salt SHA-512 du mot de passe.

Les mots de passe respectent la casse. Les mots de passe doivent comporter au moins huit 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 le login_name.

MUST_CHANGE

S’applique uniquement aux connexions SQL Server. 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.

CHECK_EXPIRATION = { ON | OFF }

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 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 s’appliquer à 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, à savoir un espace, _, @, *, ^, % ! , $, # ou &.

WINDOWS

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

Notes

  • Les mots de passe respectent la casse.
  • 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.
  • Quand CHECK_POLICY a la valeur OFF, lockout_time est réinitialisé et CHECK_EXPIRATION prend la valeur OFF.

Important

CHECK_EXPIRATION et CHECK_POLICY sont uniquement appliqués à Windows Server 2003 et ultérieur. Pour plus d'informations, consultez Password Policy.

Autorisations

Seuls les utilisateurs ayant l’autorisation ALTER ANY LOGIN sur le serveur ou appartenant au rôle serveur fixe securityadmin peuvent créer des connexions. Pour plus d’informations, consultez Rôles de niveau serveur et ALTER SERVER ROLE.

Après la création d’une connexion

Après la création d’une connexion, celle-ci peut se connecter à Azure Synapse Analytics, mais elle dispose uniquement des autorisations accordées au rôle public. Envisagez d’effectuer certaines des activités suivantes.

  • Pour vous connecter à une base de données, créez un utilisateur de base de données pour la connexion. Pour plus d’informations, consultez CREATE USER.
  • Créez un rôle serveur défini par l’utilisateur à l’aide de CREATE SERVER ROLE. Utilisez ALTER SERVER ROLE ... ADD MEMBER pour ajouter la nouvelle connexion au rôle serveur défini par l’utilisateur. Pour plus d’informations, consultez CREATE SERVER ROLE et ALTER SERVER ROLE.
  • Utilisez sp_addsrvrolemember pour ajouter la connexion à un rôle serveur fixe. Pour plus d’informations, consultez Rôles de niveau serveur et 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. Pour plus d’informations, consultez GRANT.

Exemples

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. Utilisation d’options

L’exemple suivant crée la connexion Mary8 avec le mot de passe et certains 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 le domaine Contoso.

CREATE LOGIN [Contoso\Mary] FROM WINDOWS;
GO

Voir aussi