sp_unsetapprole (Transact-SQL)
Se aplica a: SQL Server
Desactiva un rol de aplicación y vuelve al contexto de seguridad anterior.
Convenciones de sintaxis de Transact-SQL
Sintaxis
sp_unsetapprole [ @cookie = ] cookie
[ ; ]
Argumentos
[ @cookie = ] cookie
Especifica la cookie que se creó cuando se activó el rol de aplicación. @cookie es varbinary(8000) sin valor predeterminado. La cookie se crea mediante sp_setapprole.
Nota:
El parámetro cookie OUTPUT
de sp_setapprole
se documenta actualmente como varbinary(8000), que es la longitud máxima correcta. Pero 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 devolución de cookies aumenta en una versión futura.
Valores de código de retorno
0 (correcto) y 1 (error)
Comentarios
Después de activar un rol de aplicación mediante sp_setapprole
, el rol permanece activo hasta que el usuario se desconecta sp_unsetapprole
del servidor o ejecuta .
Para obtener información general sobre los roles de aplicación, consulte Roles de aplicación.
Permisos
Requiere la pertenencia al público y al conocimiento de la cookie guardada cuando se activó el rol de aplicación.
Ejemplos
Activar un rol de aplicación con una cookie y, a continuación, revertir al contexto anterior
En el siguiente ejemplo se habilita 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();
-- 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
-- Return the name of the original user.
SELECT USER_NAME();
GO