SETUSER (Transact-SQL)

Permite a un miembro de la función fija de servidor sysadmin o de la función fija de base de datos db_owner suplantar a otro usuario.

ms186297.note(es-es,SQL.90).gifImportante:
SETUSER se incluye en Microsoft SQL Server 2005 únicamente por motivos de compatibilidad con versiones anteriores. Es posible que SETUSER deje de admitirse en versiones futuras de SQL Server. En su lugar, se recomienda utilizar EXECUTE AS.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

SETUSER [ 'username' [ WITH NORESET ] ] 

Argumentos

'username'

Es el nombre del usuario de SQL Server o de Microsoft 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 especifiquen username) no deben restablecer la identidad del usuario como administrador del sistema o propietario de la base de datos.

Notas

Los miembros de la función fija de servidor sysadmin o de la función fija de base de datos db_owner pueden utilizar SETUSER para adoptar la identidad de otro usuario con el fin de probar los permisos de ese usuario.

Sólo 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, y no el 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 utiliza SETUSER WITH NORESET, la única forma de que el administrador del sistema o el propietario de la base de datos pueda restablecer sus propios derechos es cerrar la sesión e iniciar otra.

Permisos

Debe pertenecer a la función fija de servidor sysadmin o a la función fija 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. Mediante SETUSER, el propietario de la base de datos suplanta a mary para garantizar al usuario joe el acceso a la tabla computer_types y, a continuación, restablece su propia identidad.

SETUSER 'mary'
GO
GRANT SELECT ON computer_types TO joe
GO
SETUSER

Vea también

Referencia

DENY (Transact-SQL)
GRANT (Transact-SQL)
REVOKE (Transact-SQL)
USE (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005