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.
Desactiva un rol de aplicación y vuelve al contexto de seguridad anterior.
Convenciones de sintaxis de Transact-SQL
Sintaxis
sp_unsetapprole @cookie
Argumentos
@cookie
Especifica la cookie que se creó cuando se activó el rol de aplicación. La cookie la crea sp_setapprole (Transact-SQL). varbinary(8000).[!NOTA]
El parámetro OUTPUT de la cookie para sp_setapprole está documentado actualmente como varbinary(8000), que es la longitud máxima correcta. Sin embargo, la implementación actual devuelve varbinary(50). Las aplicaciones deben seguir reservando varbinary(8000) para que la aplicación siga funcionando correctamente si el tamaño de retorno de la cookie aumenta en una versión futura.
Valores de código de retorno
0 (correcto) y 1 (error)
Comentarios
Tras la activación de un rol de aplicación mediante sp_setapprole, el rol permanece activo hasta que el usuario se desconecta del servidor o ejecuta sp_unsetapprole.
Para obtener información general acerca de los roles de aplicación, vea Roles de aplicación.
Permisos
Requiere la pertenencia al rol public y conocimiento de la cookie guardada cuando se activó el rol de aplicación.
Ejemplos
Activar un rol de aplicación con una cookie y volver al contexto original
En el siguiente ejemplo se activa el rol de aplicación Sales11 con la contraseña fdsd896#gfdbfdkjgh700mM y se crea una cookie. En el ejemplo se devuelve el nombre del usuario actual y se revierte al contexto original ejecutando sp_unsetapprole.
DECLARE @cookie varbinary(8000);
EXEC sp_setapprole 'Sales11', 'fdsd896#gfdbfdkjgh700mM'
, @fCreateCookie = true, @cookie = @cookie OUTPUT;
-- The application role is now active.
SELECT USER_NAME();
-- This will return the name of the application role, Sales11.
EXEC sp_unsetapprole @cookie;
-- The application role is no longer active.
-- The original context has now been restored.
GO
SELECT USER_NAME();
-- This will return the name of the original user.
GO
Vea también
Referencia
Procedimientos almacenados del sistema (Transact-SQL)
Procedimientos almacenados de seguridad (Transact-SQL)