sp_adduser (Transact-SQL)

S’applique à :SQL Server

Ajoute un nouvel utilisateur dans la base de données active.

Important

Cette fonctionnalité sera supprimée dans une version future de SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Utilisez CREATE USER à la place.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_adduser
    [ @loginame = ] N'loginame'
    [ , [ @name_in_db = ] N'name_in_db' ]
    [ , [ @grpname = ] N'grpname' ]
[ ; ]

Arguments

[ @loginame = ] N’loginame'

Nom de la connexion SQL Server ou du compte Windows. @loginame est sysname, sans valeur par défaut. @loginame doit être une connexion SQL Server existante ou un compte Windows.

[ @name_in_db = ] N’name_in_db'

Nom de l’utilisateur de la nouvelle base de données. @name_in_db est sysname, avec la valeur par défaut NULL. Si @name_in_db n’est pas spécifié, le nom du nouvel utilisateur de base de données par défaut est @loginame. La spécification de @name_in_db donne au nouvel utilisateur un nom dans la base de données différent du nom de connexion au niveau du serveur.

[ @grpname = ] N’grpname'

Rôle de base de données dont le nouvel utilisateur devient membre. @grpname est sysname, avec la valeur par défaut NULL. @grpname doit être un rôle de base de données valide dans la base de données active.

Valeurs des codes de retour

0 (réussite) ou 1 (échec).

Notes

sp_adduser crée également un schéma qui est le nom de l’utilisateur.

Une fois qu’un utilisateur a été ajouté, utilisez les instructions et DENYREVOKE les GRANTinstructions pour définir les autorisations qui contrôlent les activités effectuées par l’utilisateur.

Permet sys.server_principals d’afficher la liste des connexions valides.

Permet sp_helprole d’afficher la liste des noms de rôles valides. Lorsque vous spécifiez un rôle, l'utilisateur obtient automatiquement les autorisations définies pour ce rôle. Si aucun rôle n’est spécifié, l’utilisateur obtient les autorisations accordées au rôle public par défaut. Pour ajouter un utilisateur à un rôle, une valeur pour l '@name_in_db doit être fournie. (@name_in_db peut être identique à @loginame.)

L’invité utilisateur existe déjà dans chaque base de données. L’ajout d’un invité utilisateur active cet utilisateur, s’il a été précédemment désactivé. Par défaut, l’invité utilisateur est désactivé dans les nouvelles bases de données.

sp_adduser ne peut pas être exécuté à l’intérieur d’une transaction définie par l’utilisateur.

Vous ne pouvez pas ajouter d’utilisateur invité , car un utilisateur invité existe déjà à l’intérieur de chaque base de données. Pour activer l’utilisateur invité , accordez l’autorisation Guest CONNECT comme indiqué :

GRANT CONNECT TO guest;
GO

Autorisations

Il faut être propriétaire de la base de données.

Exemples

R. Ajouter un utilisateur de base de données

L’exemple suivant ajoute l’utilisateur Vidur de base de données au rôle existant Recruiting dans la base de données active, à l’aide de la connexion VidurSQL Server existante.

EXEC sp_adduser 'Vidur', 'Vidur', 'Recruiting';

B. Ajouter un utilisateur de base de données avec le même ID de connexion

L’exemple suivant ajoute l’utilisateur Arvind à la base de données active pour la connexion ArvindSQL Server. Cet utilisateur appartient au rôle public par défaut.

EXEC sp_adduser 'Arvind';

C. Ajouter un utilisateur de base de données avec un nom différent de celui de sa connexion au niveau du serveur

L’exemple suivant ajoute la connexion BjornR SQL Server à la base de données active qui est un nom Bjornd’utilisateur et ajoute l’utilisateur Bjorn de base de données au Production rôle de base de données.

EXEC sp_adduser 'BjornR', 'Bjorn', 'Production';