CREATE USER (Transact-SQL)

S’applique à : ouiSQL Server (toutes les versions prises en charge) OuiAzure SQL Database OuiAzure SQL Managed Instance ouiAzure Synapse Analytics OuiParallel Data Warehouse

Ajoute un utilisateur à la base de données active. Douze types d’utilisateurs sont répertoriés ci-dessous avec un exemple de la syntaxe la plus basique :

Utilisateurs basés sur les comptes de connexion dans Master : il s’agit du type d’utilisateur le plus courant.

  • Utilisateur basé sur un compte de connexion basé sur un compte Windows Active Directory. CREATE USER [Contoso\Fritz];
  • Utilisateur basé sur un compte de connexion basé sur un groupe Windows. CREATE USER [Contoso\Sales];
  • Utilisateur basé sur un compte de connexion utilisant l'authentification SQL Server. CREATE USER Mary;

Utilisateurs qui s’authentifient auprès de la base de données : recommandé pour accroître la portabilité de votre base de données.
Toujours autorisé dans SQL Database. Autorisé uniquement dans une base de données autonome dans SQL Server.

  • Utilisateur basé sur un utilisateur Windows qui ne dispose d'aucun compte de connexion. CREATE USER [Contoso\Fritz];

  • Utilisateur basé sur un groupe Windows qui ne dispose d'aucun compte de connexion. CREATE USER [Contoso\Sales];

  • Utilisateur dans SQL Database ou Azure Synapse Analytics basé sur un utilisateur Azure Active Directory. CREATE USER [Fritz@contoso.com] FROM EXTERNAL PROVIDER;

  • Utilisateur de base de données autonome avec mot de passe. (Non disponible dans Azure Synapse Analytics.) CREATE USER Mary WITH PASSWORD = '********';

Utilisateurs basés sur des principaux Windows qui se connectent via des comptes de connexion de groupe Windows

  • Utilisateur basé sur un utilisateur Windows qui ne dispose d'aucun compte de connexion, mais peut se connecter au Moteur de base de données via une appartenance à un groupe Windows. CREATE USER [Contoso\Fritz];

  • Utilisateur basé sur un groupe Windows qui ne dispose pas de compte de connexion, mais qui peut se connecter au Moteur de base de données via l’appartenance à un autre groupe Windows. CREATE USER [Contoso\Fritz];

Utilisateurs qui ne peuvent pas s’authentifier : ces utilisateurs ne peuvent pas se connecter à SQL Server ou à SQL Database.

  • Utilisateur sans compte de connexion. Impossible de se connecter, mais peut se voir accorder des autorisations. CREATE USER CustomApp WITHOUT LOGIN;
  • Utilisateur basé sur un certificat. Impossible de se connecter, mais peut se voir accorder des autorisations et peut signer des modules. CREATE USER TestProcess FOR CERTIFICATE CarnationProduction50;
  • Utilisateur basé sur une clé asymétrique. Impossible de se connecter, mais peut se voir accorder des autorisations et peut signer des modules. CREATE User TestProcess FROM ASYMMETRIC KEY PacificSales09;

Icône du lien de rubrique Conventions de la syntaxe Transact-SQL

Syntaxe

-- Syntax for SQL Server, Azure SQL Database, and Azure SQL Managed Instance
  
-- Syntax Users based on logins in master  
CREATE USER user_name   
    [   
        { FOR | FROM } LOGIN login_name   
    ]  
    [ WITH <limited_options_list> [ ,... ] ]   
[ ; ]  
  
-- Users that authenticate at the database  
CREATE USER   
    {  
      windows_principal [ WITH <options_list> [ ,... ] ]  
  
    | user_name WITH PASSWORD = 'password' [ , <options_list> [ ,... ]   
    | Azure_Active_Directory_principal FROM EXTERNAL PROVIDER   
    }  
  
 [ ; ]  
  
-- Users based on Windows principals that connect through Windows group logins  
CREATE USER   
    {   
          windows_principal [ { FOR | FROM } LOGIN windows_principal ]  
        | user_name { FOR | FROM } LOGIN windows_principal  
}  
    [ WITH <limited_options_list> [ ,... ] ]   
[ ; ]  
  
-- Users that cannot authenticate   
CREATE USER user_name   
    {  
         WITHOUT LOGIN [ WITH <limited_options_list> [ ,... ] ]  
       | { FOR | FROM } CERTIFICATE cert_name   
       | { FOR | FROM } ASYMMETRIC KEY asym_key_name   
    }  
 [ ; ]  
  
<options_list> ::=  
      DEFAULT_SCHEMA = schema_name  
    | DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }  
    | SID = sid   
    | ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] ]  
  
<limited_options_list> ::=  
      DEFAULT_SCHEMA = schema_name ]   
    | ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] ]  
  
-- SQL Database syntax when connected to a federation member  
CREATE USER user_name  
[;]

-- Syntax for users based on Azure AD logins for Azure SQL Managed Instance
CREATE USER user_name   
    [   { FOR | FROM } LOGIN login_name  ]  
    | FROM EXTERNAL PROVIDER
    [ WITH <limited_options_list> [ ,... ] ]   
[ ; ]  

<limited_options_list> ::=  
      DEFAULT_SCHEMA = schema_name 
    | DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }   
    | ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] ] 

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.

-- Syntax for Azure Synapse Analytics  
  
CREATE USER user_name   
    [ { { FOR | FROM } { LOGIN login_name }   
      | WITHOUT LOGIN  
    ]   
    [ WITH DEFAULT_SCHEMA = schema_name ]  
[;]

CREATE USER Azure_Active_Directory_principal FROM EXTERNAL PROVIDER  
    [ WITH DEFAULT_SCHEMA = schema_name ]  
[;]
-- Syntax for Parallel Data Warehouse  
  
CREATE USER user_name   
    [ { { FOR | FROM }  
      {   
        LOGIN login_name   
      }   
      | WITHOUT LOGIN  
    ]   
    [ WITH DEFAULT_SCHEMA = schema_name ]  
[;]  

Notes

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 et versions antérieures, consultez Versions antérieures de la documentation.

Arguments

user_name

Spécifie le nom qui identifie l'utilisateur dans cette base de données. user_name est de type sysname. Il peut comporter jusqu'à 128 caractères. Lors de la création d'un utilisateur basé sur un principal Windows, le nom du principal Windows devient le nom d'utilisateur sauf si un autre nom d'utilisateur est spécifié.

LOGIN login_name

Spécifie le compte de connexion pour lequel l'utilisateur de base de données est créé. login_name doit être un compte de connexion valide sur le serveur. Peut être un compte de connexion basé sur un principal Windows (utilisateur ou groupe), ou un compte de connexion utilisant l'authentification SQL Server. Quand ce compte de connexion SQL Server accède à la base de données, il prend le nom et l’ID de l’utilisateur de base de données que vous créez. Lorsque vous créez un compte de connexion mappé à partir d'un principal Windows, utilisez le format [ <domainName> \ <loginName> ] . Pour obtenir des exemples, consultez Résumé de syntaxe.

Si l’instruction CREATE USER est la seule instruction d’un lot SQL, Azure SQL Database prend en charge la clause WITH LOGIN. Si l'instruction CREATE USER n'est pas la seule instruction d'un lot SQL ou est exécutée en SQL dynamique, la clause WITH LOGIN n'est pas prise en charge.

WITH DEFAULT_SCHEMA = schema_name

Spécifie le premier schéma que le serveur doit interroger pour résoudre les noms des objets associés à cet utilisateur de base de données.

'windows_principal'

Spécifie le principal Windows pour lequel l'utilisateur de la base de données est créé. windows_principal peut être un utilisateur Windows ou un groupe Windows. L’utilisateur est créé même si le windows_principal ne dispose pas de compte de connexion. Lors de la connexion à SQL Server, si windows_principal ne dispose pas de compte de connexion, le principal Windows doit s’authentifier auprès du Moteur de base de données via l’appartenance à un groupe Windows qui dispose d’un compte de connexion, ou la chaîne de connexion doit spécifier la base de données autonome comme catalogue initial. Lorsque vous créez un utilisateur à partir d'un principal Windows, utilisez le format [ <domainName> \ <loginName> ] . Pour obtenir des exemples, consultez Résumé de syntaxe. Les utilisateurs basés sur des utilisateurs Active Directory sont limités aux noms de moins de 21 caractères.

'Azure_Active_Directory_principal'

S’applique à : SQL Database, Azure Synapse Analytics.

Spécifie le principal Azure Active Directory pour lequel l’utilisateur de la base de données est créé. Azure_Active_Directory_principal peut être un utilisateur Azure Active Directory, un groupe Azure Active Directory ou une application Azure Active Directory. (Les utilisateurs Azure Active Directory ne peuvent pas avoir de comptes de connexion d’authentification Windows SQL Database ; seuls les utilisateurs de base de données le peuvent.) La chaîne de connexion doit spécifier la base de données autonome comme catalogue initial.

Pour les principaux Azure AD, la syntaxe CREATE USER exige les éléments suivants :

  • UserPrincipalName de l’objet Azure AD pour les utilisateurs Azure AD.

    • CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
    • CREATE USER [alice@fabrikam.onmicrosoft.com] FROM EXTERNAL PROVIDER;
  • 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.

  • DisplayName de l’objet Azure AD pour les groupes Azure AD et les applications Azure AD. Avec le groupe de sécurité Nurses, on utiliserait :

    • CREATE USER [Nurses] FROM EXTERNAL PROVIDER;

Pour plus d’informations, consultez Connexion à SQL Database avec l’authentification Azure Active Directory.

WITH PASSWORD = 'password'

S’applique à : SQL Server 2012 (11.x) et versions ultérieures, SQL Database.

Peut être utilisé uniquement dans une base de données autonome. Spécifie le mot de passe de l'utilisateur en cours de création. 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.

WITHOUT LOGIN

Indique que l'utilisateur ne doit pas être mappé à une connexion existante.

CERTIFICATE cert_name

S’applique à : SQL Server 2008 et versions ultérieures, SQL Database.

Spécifie le certificat pour lequel l'utilisateur de base de données est créé.

ASYMMETRIC KEY asym_key_name

S’applique à : SQL Server 2008 et versions ultérieures, SQL Database.

Spécifie la clé asymétrique pour laquelle l'utilisateur de base de données est créé.

DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language salias> }

S’applique à : SQL Server 2012 (11.x) et versions ultérieures, SQL Database.

Spécifie la langue par défaut du nouvel utilisateur. Si une langue par défaut est spécifiée pour l'utilisateur et que la langue par défaut de la base de données est changée ultérieurement, la langue par défaut des utilisateurs reste comme spécifié. Si aucune langue par défaut n'est spécifiée, la langue par défaut de l'utilisateur correspondra à la langue par défaut de la base de données. Si la langue par défaut n'est pas spécifiée pour l'utilisateur et que la langue par défaut de la base de données est changée ultérieurement, la langue par défaut de l'utilisateur est remplacée par la nouvelle langue par défaut de la base de données.

Important

DEFAULT_LANGUAGE est utilisé uniquement pour un utilisateur de base de données autonome.

SID = sid

S’applique à : SQL Server 2012 (11.x) et versions ultérieures.

S’applique uniquement aux utilisateurs munis de mots de passe (authentification SQL Server) dans une base de données autonome. Spécifie le SID du nouvel utilisateur de base de données. Si cette option n'est pas sélectionnée, SQL Server attribue automatiquement un SID. Utilisez le paramètre SID pour créer des utilisateurs dans plusieurs bases de données qui ont la même identité (SID). Cela s’avère utile lors de la création d’utilisateurs dans plusieurs bases de données pour la préparation du basculement AlwaysOn. Pour déterminer le SID d’un utilisateur, interrogez sys.database_principals.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]

S’applique à : SQL Server 2016 (13.x) et versions ultérieures, SQL Database.

Supprime les contrôles de métadonnées de chiffrement sur le serveur dans les opérations de copie en bloc. Cela permet à l’utilisateur de copier en bloc des données chiffrées entre des tables ou des bases de données, sans déchiffrer les données. La valeur par défaut est OFF.

Avertissement

Une utilisation incorrecte de cette option peut entraîner une altération des données. Pour plus d’informations, consultez Migrer des données sensibles protégées par Always Encrypted.

Notes

Si vous omettez FOR LOGIN, le nouvel utilisateur de base de données est mappé à la connexion SQL Server du même nom.

Le schéma par défaut correspond au premier schéma que le serveur doit interroger pour résoudre les noms des objets associés à cet utilisateur de base de données. Sauf spécification contraire, le schéma par défaut sera le propriétaire des objets créés par cet utilisateur de la base de données.

Si l'utilisateur possède un schéma par défaut, ce schéma par défaut est utilisé. Si l'utilisateur ne possède pas de schéma par défaut, mais qu'il est membre d'un groupe qui dispose d'un schéma par défaut, le schéma par défaut du groupe est utilisé. Si l'utilisateur ne possède pas de schéma par défaut, et qu'il est membre de plus d'un groupe, le schéma par défaut de l'utilisateur sera celui du groupe Windows avec le principal_id le plus bas et un schéma par défaut défini explicite. (Il n'est pas possible de sélectionner explicitement l'un des schémas par défaut disponibles comme schéma préférentiel.) Si aucun schéma par défaut ne peut être déterminé pour un utilisateur, le schéma dbo est utilisé.

Il est possible de définir DEFAULT_SCHEMA avant de créer le schéma vers lequel il pointe.

Vous ne pouvez pas spécifier DEFAULT_SCHEMA lorsque vous créez un utilisateur mappé à un certificat ou à une clé asymétrique.

La valeur de DEFAULT_SCHEMA est ignorée si l'utilisateur est membre du rôle serveur fixe sysadmin. Tous les membres du rôle serveur fixe sysadmin possèdent le schéma par défaut dbo.

La clause WITHOUT LOGIN crée un utilisateur qui n'est pas mappé à un compte de connexion SQL Server. Il peut se connecter à d'autres bases de données en tant qu'invité. Les autorisations peuvent être attribuées à cet utilisateur sans compte de connexion et lorsque le contexte de sécurité est modifié en utilisateur sans compte de connexion, les utilisateurs d'origine reçoivent les autorisations de l'utilisateur sans compte de connexion. Consultez l’exemple D. Création et utilisation d’un utilisateur sans compte de connexion.

Seuls les utilisateurs mappés à des principaux Windows peuvent contenir la barre oblique inverse ( \ ).

Vous ne pouvez pas utiliser CREATE USER pour créer un utilisateur invité, car ce dernier existe déjà dans toutes les bases de données. Vous pouvez activer l'utilisateur invité en lui accordant l'autorisation CONNECT comme suit :

GRANT CONNECT TO guest;  
GO  

Les informations relatives aux utilisateurs de base de données sont consultables dans la vue de catalogue sys.database_principals.

Une nouvelle extension de syntaxe, FROM EXTERNAL PROVIDER, est disponible pour la création de connexions Azure AD au niveau du serveur dans SQL Managed Instance. Les connexions AD Azure permettent de mapper des principaux Azure AD au niveau de la base de données à des connexions Azure AD au niveau du serveur. Pour créer un utilisateur Azure AD à partir d’une connexion Azure AD, utilisez la syntaxe suivante :

CREATE USER [AAD_principal] FROM LOGIN [Azure AD login]

Quand vous créez l’utilisateur dans la base de données SQL Managed Instance, le login_name doit correspondre à une connexion Azure AD existante, sinon l’utilisation de la clause FROM EXTERNAL PROVIDER ne fera que créer un utilisateur Azure AD sans connexion dans la base de données MASTER. Par exemple, cette commande crée un utilisateur contenu :

CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER

Résumé de syntaxe

Utilisateurs basés sur des comptes de connexion dans Master

La liste suivante affiche la syntaxe possible pour les utilisateurs basés sur des comptes de connexion. Les options de schéma par défaut ne sont pas répertoriées.

  • CREATE USER [Domain1\WindowsUserBarry]
  • CREATE USER [Domain1\WindowsUserBarry] FOR LOGIN Domain1\WindowsUserBarry
  • CREATE USER [Domain1\WindowsUserBarry] FROM LOGIN Domain1\WindowsUserBarry
  • CREATE USER [Domain1\WindowsGroupManagers]
  • CREATE USER [Domain1\WindowsGroupManagers] FOR LOGIN [Domain1\WindowsGroupManagers]
  • CREATE USER [Domain1\WindowsGroupManagers] FROM LOGIN [Domain1\WindowsGroupManagers]
  • CREATE USER SQLAUTHLOGIN
  • CREATE USER SQLAUTHLOGIN FOR LOGIN SQLAUTHLOGIN
  • CREATE USER SQLAUTHLOGIN FROM LOGIN SQLAUTHLOGIN

Utilisateurs qui s’authentifient auprès de la base de données

La liste suivante affiche la syntaxe possible pour les utilisateurs qui peuvent être utilisés uniquement dans une base de données autonome. Les utilisateurs créés ne seront liés à aucun compte de connexion dans la base de données Master. Les options de langue et de schéma par défaut ne sont pas répertoriées.

Important

Cette syntaxe accorde aux utilisateurs un accès à la base de données, ainsi qu’un nouvel accès au Moteur de base de données.

  • CREATE USER [Domain1\WindowsUserBarry]
  • CREATE USER [Domain1\WindowsGroupManagers]
  • CREATE USER Barry WITH PASSWORD = 'sdjklalie8rew8337!$d'

Utilisateurs basés sur des principaux Windows sans comptes de connexion dans Master

La liste suivante affiche la syntaxe possible pour les utilisateurs qui ont accès au Moteur de base de données via un groupe Windows, mais qui ne disposent pas d’un compte de connexion dans Master. Cette syntaxe peut être utilisée dans tous les types de bases de données. Les options de langue et de schéma par défaut ne sont pas répertoriées.

Cette syntaxe est semblable aux utilisateurs basés sur des comptes de connexion dans master, mais cette catégorie d'utilisateurs ne dispose pas de compte de connexion dans master. L’utilisateur doit avoir accès au Moteur de base de données via un compte de connexion de groupe Windows.

Cette syntaxe est semblable à celle utilisées pour les utilisateurs de base de données autonome basés sur des principaux Windows, mais cette catégorie d’utilisateurs n’obtient pas un nouvel accès au Moteur de base de données.

  • CREATE USER [Domain1\WindowsUserBarry]
  • CREATE USER [Domain1\WindowsUserBarry] FOR LOGIN Domain1\WindowsUserBarry
  • CREATE USER [Domain1\WindowsUserBarry] FROM LOGIN Domain1\WindowsUserBarry
  • CREATE USER [Domain1\WindowsGroupManagers]
  • CREATE USER [Domain1\WindowsGroupManagers] FOR LOGIN [Domain1\WindowsGroupManagers]
  • CREATE USER [Domain1\WindowsGroupManagers] FROM LOGIN [Domain1\WindowsGroupManagers]

Utilisateurs qui ne peuvent pas s’authentifier

La liste suivante affiche la syntaxe possible pour les utilisateurs qui ne peuvent pas se connecter à SQL Server.

  • CREATE USER RIGHTSHOLDER WITHOUT LOGIN
  • CREATE USER CERTUSER FOR CERTIFICATE SpecialCert
  • CREATE USER CERTUSER FROM CERTIFICATE SpecialCert
  • CREATE USER KEYUSER FOR ASYMMETRIC KEY SecureKey
  • CREATE USER KEYUSER FROM ASYMMETRIC KEY SecureKey

Sécurité

La création d'un utilisateur accorde l'accès à une base de données, mais n'accorde pas automatiquement l'accès aux objets d'une base de données. Après la création d’un utilisateur, les actions communes consistent à ajouter des utilisateurs aux rôles de base de données qui ont l’autorisation d’accéder aux objets de base de données ou d’octroyer des autorisations relatives aux objets à l’utilisateur. Pour plus d’informations sur la conception d’un système d’autorisations, voir Getting Started with Database Engine Permissions.

Considérations spéciales pour les bases de données autonomes

Lors de la connexion à une base de données autonome, si l'utilisateur ne dispose pas de compte de connexion dans la base de données master, la chaîne de connexion doit inclure le nom de base de données autonome comme catalogue initial. Le paramètre de catalogue initial est toujours requis pour un utilisateur de base de données autonome avec mot de passe.

Dans une base de données autonome, la création d’utilisateurs permet de séparer la base de données de l’instance du Moteur de base de données afin que la base de données puisse être déplacée facilement vers une autre instance de SQL Server. Pour plus d’informations, consultez Bases de données autonomes et Utilisateurs de base de données autonome - Rendre votre base de données portable. Pour changer un utilisateur de base de données basé sur un compte de connexion d’authentification SQL Server en utilisateur de base de données autonome avec mot de passe, consultez sp_migrate_user_to_contained (Transact-SQL).

Dans une base de données autonome, les utilisateurs n'ont pas besoin d'un compte de connexion dans la base de données master. Les administrateurs du Moteur de base de données doivent comprendre que l'accès à une base de données autonome peut être accordé au niveau de la base de données, plutôt qu'au niveau du Moteur de base de données. Pour plus d'informations, consultez Meilleures pratiques de sécurité recommandées avec les bases de données autonomes.

En cas d'utilisateurs de base de données autonome Azure SQL Database, configurez l'accès à l'aide d'une règle de pare-feu de niveau base de données, et non d'une règle de pare-feu de niveau serveur. Pour plus d’informations, consultez sp_set_database_firewall_rule (Azure SQL Database).

Pour les utilisateurs de base de données autonome SQL Database et Azure Synapse Analytics, SSMS peut prendre en charge l’authentification multifacteur. Pour plus d’informations, consultez Support SSMS pour Azure AD MFA avec SQL Database et Azure Synapse Analytics

Autorisations

Nécessite l'autorisation ALTER ANY USER sur la base de données.

Exemples

R. Création d'un utilisateur de base de données basé sur un compte de connexion SQL Server

L'exemple suivant crée d'abord un compte de connexion SQL Server nommé AbolrousHazem, puis crée un utilisateur de base de données correspondant nommé AbolrousHazem dans AdventureWorks2012.

CREATE LOGIN AbolrousHazem   
    WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';  

Changez de base de données utilisateur. Par exemple, dans SQL Server, utilisez l’instruction USE AdventureWorks2012. Dans Azure Synapse Analytics et Analytics Platform System (PDW), vous devez établir une nouvelle connexion à la base de données utilisateur.

CREATE USER AbolrousHazem FOR LOGIN AbolrousHazem;  
GO   

B. Création d'un utilisateur de base de données avec un schéma par défaut

L'exemple suivant crée d'abord une connexion serveur nommée WanidaBenshoof avec un mot de passe, puis crée un utilisateur de base de données correspondant nommé Wanida avec le schéma par défaut Marketing.

CREATE LOGIN WanidaBenshoof   
    WITH PASSWORD = '8fdKJl3$nlNv3049jsKK';  
USE AdventureWorks2012;  
CREATE USER Wanida FOR LOGIN WanidaBenshoof   
    WITH DEFAULT_SCHEMA = Marketing;  
GO  

C. Création d'un utilisateur de base de données à partir d'un certificat

L'exemple suivant crée un utilisateur de base de données JinghaoLiu à partir du certificat CarnationProduction50.

S’applique à : SQL Server 2008 et versions ultérieures.

USE AdventureWorks2012;  
CREATE CERTIFICATE CarnationProduction50  
    WITH SUBJECT = 'Carnation Production Facility Supervisors',  
    EXPIRY_DATE = '11/11/2011';  
GO  
CREATE USER JinghaoLiu FOR CERTIFICATE CarnationProduction50;  
GO   

D. Création et utilisation d'un utilisateur sans connexion

L'exemple suivant crée un utilisateur de base de données CustomApp qui n'est mappé à aucune connexion SQL Server. L'exemple accorde ensuite à un utilisateur adventure-works\tengiz0 l'autorisation d'emprunter l'identité de l'utilisateur CustomApp.

USE AdventureWorks2012 ;  
CREATE USER CustomApp WITHOUT LOGIN ;  
GRANT IMPERSONATE ON USER::CustomApp TO [adventure-works\tengiz0] ;  
GO   

Pour utiliser les informations d'identification CustomApp, l'utilisateur adventure-works\tengiz0 exécute l'instruction suivante.

EXECUTE AS USER = 'CustomApp' ;  
GO  

Pour revenir aux informations d'identification adventure-works\tengiz0, l'utilisateur exécute l'instruction suivante.

REVERT ;  
GO  

E. Création d'un utilisateur de base de données autonome avec mot de passe

L'exemple suivant crée un utilisateur de base de données autonome avec mot de passe. Cet exemple ne peut être exécuté que dans une base de données autonome.

S’applique à : SQL Server 2012 (11.x) et versions ultérieures. Cet exemple fonctionne dans SQL Database si DEFAULT_LANGUAGE est supprimé.

USE AdventureWorks2012 ;  
GO  
CREATE USER Carlo  
WITH PASSWORD='RN92piTCh%$!~3K9844 Bl*'  
    , DEFAULT_LANGUAGE=[Brazilian]  
    , DEFAULT_SCHEMA=[dbo]  
GO   

F. Création d'un utilisateur de base de données autonome pour un compte de connexion de domaine

L'exemple suivant crée un utilisateur de base de données autonome pour une connexion nommée Fritz dans un domaine appelé Contoso. Cet exemple ne peut être exécuté que dans une base de données autonome.

S’applique à : SQL Server 2012 (11.x) et versions ultérieures.

USE AdventureWorks2012 ;  
GO  
CREATE USER [Contoso\Fritz] ;  
GO   

G. Création d'un utilisateur de base de données autonome avec un SID spécifique

L'exemple suivant crée un utilisateur de base de données autonome authentifié par SQL Server et nommé CarmenW. Cet exemple ne peut être exécuté que dans une base de données autonome.

S’applique à : SQL Server 2012 (11.x) et versions ultérieures.

USE AdventureWorks2012 ;  
GO  
CREATE USER CarmenW WITH PASSWORD = 'a8ea v*(Rd##+'  
, SID = 0x01050000000000090300000063FF0451A9E7664BA705B10E37DDC4B7;

H. Création d’un utilisateur pour copier des données chiffrées

L’exemple suivant crée un utilisateur qui peut copier des données protégées par la fonctionnalité Always Encrypted d’un ensemble de tables contenant des colonnes chiffrées vers un autre ensemble de tables avec des colonnes chiffrées (dans la même base de données ou dans une autre base de données). Pour plus d’informations, consultez Migrer des données sensibles protégées par Always Encrypted.

S’applique à : SQL Server 2016 (13.x) et versions ultérieures, SQL Database.

CREATE USER [Chin]   
WITH   
      DEFAULT_SCHEMA = dbo  
    , ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = ON ;  

I. Créer un utilisateur Azure AD à partir d’une connexion Azure AD dans SQL Managed Instance

Pour créer un utilisateur Azure AD à partir d’une connexion Azure AD, utilisez la syntaxe suivante.

Connectez-vous à votre instance managée avec une connexion Azure AD détentrice du rôle sysadmin. Le code suivant crée un utilisateur Azure AD bob@contoso.com à partir de la connexion bob@contoso.com. Cette connexion a été créée dans l’exemple CREATE LOGIN.

CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com];
GO

Important

Quand vous créez un USER à partir d’une connexion Azure AD, spécifiez un user_name identique au login_name de LOGIN.

La création d’un utilisateur Azure AD en tant que groupe à partir d’une connexion Azure AD qui est un groupe est une opération prise en charge.

CREATE USER [AAD group] FROM LOGIN [AAD group];
GO

Vous pouvez également créer un utilisateur Azure AD à partir d’une connexion Azure AD qui est un groupe.

CREATE USER [bob@contoso.com] FROM LOGIN [AAD group];
GO

J. Créer un utilisateur Azure AD sans connexion AAD pour la base de données

La syntaxe suivante permet de créer un utilisateur Azure AD bob@contoso.com dans la base de données SQL Managed Instance (utilisateur autonome) :

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

Étapes suivantes

Une fois l’utilisateur créé, envisagez d’ajouter l’utilisateur à un rôle de base de données à l’aide de l’instruction ALTER ROLE.
Vous pouvez également octroyer (GRANT) des autorisations sur un objet au rôle afin qu’il puisse accéder aux tables. Pour obtenir des informations générales sur le modèle de sécurité SQL Server, consultez Autorisations.

Voir aussi

Créer un utilisateur de base de données
sys.database_principals (Transact-SQL)
ALTER USER (Transact-SQL)
DROP USER (Transact-SQL)
CREATE LOGIN (Transact-SQL)
EVENTDATA (Transact-SQL)
Bases de données autonomes
Connexion à la base de données SQL à l’aide de l’authentification Azure Active Directory
Prise en main des autorisations du moteur de base de données