Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Managed Instance
Permite a un miembro del rol fijo de servidor sysadmin o al propietario de una base de datos suplantar a otro usuario.
Importante
SETUSER está incluido solo para compatibilidad hacia atrás. SETUSERpuede que no sea compatible con una futura versión de SQL Server. Se recomienda utilizar EXECUTE AS en su lugar.
Convenciones de sintaxis de Transact-SQL
Sintaxis
SETUSER [ 'username' [ WITH NORESET ] ]
Argumentos
'username'
Es el nombre de un usuario de SQL Server o de Windows en la base de datos actual al que se suplanta. Cuando no se especifica el parámetro username, se restablece la identidad original del administrador del sistema o propietario de la base de datos que suplantaba al usuario.
CON NORESET
Especifica que las sentencias posteriores SETUSER (sin nombre de usuario especificado) no deben restablecer la identidad de usuario a administrador del sistema o propietario de la base de datos.
Comentarios
SETUSER puede ser utilizado por un miembro del rol fijo de servidor administrador del sistema o por el propietario de una base de datos para adoptar la identidad de otro usuario y así probar los permisos del otro usuario. No basta con pertenecer al rol fijo de base de datos db_owner.
Solo úsalo SETUSER con usuarios de SQL Server. SETUSERno es compatible con usuarios de Windows. Cuando SETUSER se ha utilizado para asumir la identidad de otro usuario, cualquier objeto que el usuario que se hace pasar por él pertenece al usuario. Por ejemplo, si el propietario de la base de datos adopta la identidad de la usuaria Margaret y crea una tabla llamada orders, la propietaria de la tabla orders será Margaret, en lugar del administrador del sistema.
SETUSER permanece en vigor hasta que se emita otra SETUSER declaración o hasta que la base de datos actual se cambie con la instrucción USE.
Nota
Si SETUSER se utiliza WITH NORESET, el propietario de la base de datos o el administrador del sistema debe cerrar sesión y luego volver a iniciar sesión para restablecer sus propios derechos.
Permisos
Es necesario pertenecer al rol fijo de servidor sysadmin o ser propietario de la base de datos. No basta con pertenecer al rol fijo de base de datos db_owner.
Ejemplos
El ejemplo siguiente muestra cómo el propietario de la base de datos puede adoptar la identidad de otro usuario. La usuaria mary ha creado una tabla llamada computer_types. Al usar SETUSER, el propietario de la base de datos se mary hace pasar por el usuario para conceder acceso al usuario joe a la computer_types tabla y luego restablece su propia identidad.
SETUSER 'mary';
GO
GRANT SELECT ON computer_types TO joe;
GO
--To revert to the original user
SETUSER;
Consulte también
DENY (Transact-SQL)
GRANT (Transact-SQL)
REVOKE (Transact-SQL)
USAR (Transact-SQL)