CREATE USER (Transact-SQL)

Ajoute un utilisateur à la base de données active.

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

Syntaxe

CREATE USER user_name 
    [ { { FOR | FROM }
      { 
        LOGIN login_name 
        | CERTIFICATE cert_name 
        | ASYMMETRIC KEY asym_key_name
      } 
      | WITHOUT LOGIN
    ] 
    [ WITH DEFAULT_SCHEMA = schema_name ]

Arguments

  • user_name
    Spécifie le nom qui identifie l'utilisateur dans cette base de données. user_name correspond à sysname. Il peut comporter jusqu'à 128 caractères.
  • LOGIN login_name
    Spécifie la connexion d'accès SQL Server pour laquelle l'utilisateur de la base de données est créé. login_name doit être une identification de connexion valide pour le serveur. Lorsque cette identification de connexion SQL Server est entrée dans la base de données, elle prend le nom et l'ID de l'utilisateur de la base de données que vous créez.
  • CERTIFICATE cert_name
    Spécifie le certificat associé à l'utilisateur de base de données en cours de création.
  • ASYMMETRIC KEY asym_key_name
    Spécifie la clé asymétrique pour laquelle l'utilisateur de base de données est créé.
  • WITH DEFAULT_SCHEMA **=**schema_name
    Indique le premier schéma que le serveur devra interroger pour résoudre les noms des objets associés à cet utilisateur de la base de données.
  • WITHOUT LOGIN
    Indique que l'utilisateur ne doit pas être associé à une connexion d'accès existante.

Notes

Si vous omettez FOR LOGIN, le nouvel utilisateur de la base de données sera associé aux informations de connexion SQL Server comprenant le même nom.

Si DEFAULT_SCHEMA n'est pas défini, l'utilisateur de la base de données utilisera dbo comme schéma par défaut. La valeur de DEFAULT_SCHEMA peut désigner un schéma qui n'existe pas encore dans la base de données. Il est possible de définir le paramètre DEFAULT_SCHEMA avant de créer le schéma vers lequel il pointe. En revanche, vous ne pouvez pas spécifier DEFAULT_SCHEMA si vous créez un utilisateur associé à un groupe Windows, à un certificat ou à une clé asymétrique.

ms173463.note(fr-fr,SQL.90).gifImportant :
La valeur de DEFAULT_SCHEMA est ignorée si l'utilisateur est membre du rôle de serveur fixe sysadmin. Tous les membres du rôle de 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é à une connexion SQL Server. Il peut se connecter aux autres bases de données en tant qu'utilisateur guest.

Les noms des utilisateurs associés à des connexions d'accès SQL Server, à des certificats ou à des clés asymétriques ne doivent pas contenir de barre oblique inverse (\).

Vous ne pouvez pas utiliser CREATE USER pour créer un utilisateur guest parce que l'utilisateur guest existe déjà dans toute base de données. Vous pouvez activer l'utilisateur guest en lui accordant l'autorisation CONNECT, de la manière suivante :

GRANT CONNECT TO guest;
GO

Des informations sur les utilisateurs de la base de données sont consultables dans l'affichage catalogue sys.database_principals.

ms173463.Caution(fr-fr,SQL.90).gifAttention :
Dans SQL Server 2005, le comportement des schémas diffère du comportement spécifique aux versions antérieures de SQL Server. Un code qui suppose que les schémas sont équivalents aux utilisateurs de base de données peut renvoyer des résultats incorrects. Vous ne devez pas recourir aux anciens affichages catalogue, notamment sysobjects, dans une base de données où une des instructions DDL suivantes a été utilisée : CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE ou ALTER AUTHORIZATION. Dans une base de données où une de ces instructions a été utilisée, vous devez recourir aux nouveaux affichages catalogue. Les nouveaux affichages catalogue prennent en compte la séparation des entités de sécurité et des schémas introduite dans SQL Server 2005. Pour plus d'informations sur les affichages catalogue, consultez Affichages catalogue (Transact-SQL).

Autorisations

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

Exemples

A. Création d'un utilisateur de base de données

L'exemple de code suivant crée d'abord une connexion d'accès serveur nommée AbolrousHazem avec un mot de passe, puis un utilisateur de base de données nommé AbolrousHazem dans AdventureWorks.

CREATE LOGIN AbolrousHazem 
    WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';
USE AdventureWorks;
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 de code suivant crée d'abord une connexion d'accès serveur nommée WanidaBenshoof avec un mot de passe, puis un utilisateur de base de données nommé Wanida avec le schéma par défaut Marketing.

CREATE LOGIN WanidaBenshoof 
    WITH PASSWORD = '8fdKJl3$nlNv3049jsKK';
USE AdventureWorks;
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 de code suivant crée un utilisateur de base de données JinghaoLiu à partir du certificat CarnationProduction50.

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

Voir aussi

Référence

sys.database_principals (Transact-SQL)
ALTER USER (Transact-SQL)
DROP USER (Transact-SQL)
CREATE LOGIN (Transact-SQL)
EVENTDATA (Transact-SQL)

Autres ressources

Séparation du schéma et de l'utilisateur

Aide et Informations

Assistance sur SQL Server 2005