sp_adduser (Transact-SQL)

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

Important

Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft 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.

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

Syntaxe

sp_adduser [ @loginame = ] 'login' 
        [ , [ @name_in_db = ] 'user' ] 
        [ , [ @grpname = ] 'role' ] 

Arguments

  • [ @loginame = ] 'login'
    Nom de la connexion SQL Server ou Windows. login est de type sysname, sans valeur par défaut. login doit être une connexion SQL Server ou Windows existante.

  • [ @name_in_db = ] 'user'
    Nom du nouvel utilisateur de base de données. user est de type sysname, avec NULL comme valeur par défaut. Si le paramètre user n'est pas spécifié, le nom du nouvel utilisateur est par défaut le nom login. Le fait de spécifier user donne au nouvel utilisateur un nom dans la base de données différent de son nom de connexion au niveau du serveur.

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

Valeurs des codes renvoyés

0 (succès) ou 1 (échec)

Notes

sp_adduser créera également un schéma qui aura le nom de l'utilisateur.

Une fois qu'un utilisateur a été ajouté, utilisez les instructions GRANT, DENY et REVOKE afin de définir les autorisations contrôlant les activités effectuées par l'utilisateur.

Utilisez sys.server_principals pour afficher une liste des noms de connexion valides.

Utilisez sp_helprole pour afficher une liste des noms de rôle 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, il faut fournir une valeur pour user name. (username peut être identique à login_id).

L'utilisateur invité existe déjà dans toutes les bases de données. L'ajout d'un utilisateur invité l'activera, s'il avait été désactivé. Par défaut, l'utilisateur invité est désactivé dans les nouvelles bases de données.

sp_adduser ne peut pas être exécutée au sein d'une transaction définie par l'utilisateur.

Vous ne pouvez pas ajouter d'utilisateur invité, car il en existe déjà un dans chaque base de données. Pour activer l'utilisateur invité, accordez-lui l'autorisation CONNECT :

GRANT CONNECT TO guest;
GO

Autorisations

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

Exemples

A. Ajout d'un utilisateur de base de données

L'exemple suivant ajoute l'utilisateur de base de données Vidur au rôle Recruiting existant dans la base de données active, en utilisant la connexion SQL ServerVidur existante.

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

B. Ajout d'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 SQL ServerArvind. Cet utilisateur appartient au rôle public par défaut.

EXEC sp_adduser 'Arvind'

C. Ajout d'un utilisateur de base de données avec un nom différent de sa connexion de niveau serveur

L'exemple suivant ajoute la connexion SQL ServerBjornR à la base de données active, qui a un nom d'utilisateur Bjorn, et ajoute l'utilisateur Bjorn dans le rôle de base de données Production.

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