Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoyEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
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 se incluye únicamente por motivos de compatibilidad con versiones anteriores. Es posible que SETUSER deje de admitirse en versiones futuras de SQL Server. Por eso, es preferible usar EXECUTE AS.
Convenciones de sintaxis de Transact-SQL
SETUSER [ 'username' [ WITH NORESET ] ]
'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.
WITH NORESET
Especifica que las instrucciones SETUSER siguientes (que no especifican username) no deben restablecer la identidad del usuario como administrador del sistema o propietario de la base de datos.
Los miembros del rol fijo de servidor sysadmin o el propietario de una base de datos pueden usar la identidad de otro usuario con el fin de probar los permisos de ese usuario. No basta con pertenecer al rol fijo de base de datos db_owner.
Solo se debe utilizar SETUSER con usuarios de SQL Server. SETUSER no se admite con usuarios de Windows. Cuando se ha utilizado SETUSER para asumir la identidad de otro usuario, los objetos que crea el usuario que realiza la suplantación serán propiedad del usuario suplantado. 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 sigue teniendo efecto hasta que se ejecute otra instrucción SETUSER o hasta que se cambie la base de datos actual con la instrucción USE.
Nota
Si se usa SETUSER WITH NORESET, el propietario de la base de datos o el administrador del sistema deben cerrar sesión y volver a iniciar sesión para restablecer sus propios derechos.
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.
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
. Mediante SETUSER, el propietario de la base de datos suplanta mary
para conceder al usuario joe
acceso a la tabla de computer_types
y, a continuación, restablece su propia identidad.
SETUSER 'mary';
GO
GRANT SELECT ON computer_types TO joe;
GO
--To revert to the original user
SETUSER;
DENY (Transact-SQL)
GRANT (Transact-SQL)
REVOKE (Transact-SQL)
USE (Transact-SQL)
Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoy