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 DENY
REVOKE
les GRANT
instructions 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 Vidur
SQL 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 Arvind
SQL 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 Bjorn
d’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';