Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server
Azure SQL Managed Instance
Permet à un membre du rôle serveur fixe sysadmin ou le propriétaire d’une base de données d’emprunter l’identité d’un autre utilisateur.
Important
SETUSER est inclus uniquement pour la rétrocompatibilité. SETUSERil se peut que cela ne soit pas pris en charge dans une future version de SQL Server. Nous vous recommandons d'utiliser EXECUTE AS à la place.
Conventions de la syntaxe Transact-SQL
Syntaxe
SETUSER [ 'username' [ WITH NORESET ] ]
Arguments
'username'
Est le nom d'un utilisateur SQL Server ou Windows dans la base de données active dont l'identité est empruntée. Quand aucun username n’est spécifié, l’identité d’origine de l’administrateur système ou du propriétaire de la base de données qui emprunte l’identité de l’utilisateur est réinitialisée.
AVEC NORESET
Précise que les instructions suivantes SETUSER (sans nom d’utilisateur spécifié) ne doivent pas réinitialiser l’identité utilisateur en administrateur système ou propriétaire de base de données.
Notes
SETUSER peut être utilisé par un membre du rôle serveur fixe administrateur système ou par le propriétaire d’une base de données pour adopter l’identité d’un autre utilisateur afin de tester les permissions de l’autre utilisateur. L’appartenance au rôle de base de données fixe db_owner ne suffit pas.
À utiliser SETUSER uniquement avec des utilisateurs de SQL Server. SETUSERn’est pas prise en charge par les utilisateurs Windows. Lorsque SETUSER a été utilisé pour assumer l’identité d’un autre utilisateur, tous les objets créés par l’utilisateur usurpant appartiennent à l’utilisateur usurpé de l’utilisateur. Par exemple, si le propriétaire de la base de données utilise l’identité de l’utilisateur Margaret et crée une table appelée orders, la table orders est la propriété de Margaret, et non celle de l’administrateur système.
SETUSER reste en vigueur jusqu’à ce qu’une autre SETUSER déclaration soit émise ou jusqu’à ce que la base de données actuelle soit modifiée avec l’instruction USE.
Notes
Si SETUSER WITH NORESET est utilisé, le propriétaire de la base de données ou l’administrateur système doit se déconnecter puis se reconnecter pour rétablir ses propres droits.
Autorisations
Nécessite l’appartenance au rôle serveur fixe sysadmin ou doit être le propriétaire de la base de données. L’appartenance au rôle de base de données fixe db_owner ne suffit pas.
Exemples
L'exemple suivant montre comment le propriétaire d'une base de données peut prendre l'identité d'un autre utilisateur. L'utilisateur mary a créé une table appelée computer_types. En utilisant SETUSER, le propriétaire de la base de données usurpe mary l’identité pour accorder l’accès à la computer_types table à l’utilisateurjoe, puis réinitialise sa propre identité.
SETUSER 'mary';
GO
GRANT SELECT ON computer_types TO joe;
GO
--To revert to the original user
SETUSER;
Voir aussi
DENY (Transact-SQL)
GRANT (Transact-SQL)
REVOKE (Transact-SQL)
UTILISER (Transact-SQL)