sp_unsetapprole (Transact-SQL)
适用范围:SQL Server
停用应用程序角色并恢复到前一个安全上下文。
语法
sp_unsetapprole [ @cookie = ] cookie
[ ; ]
参数
[ @cookie = ] cookie
指定在激活应用程序角色时创建的 Cookie。 @cookie为 varbinary(8000),没有默认值。 cookie 由 sp_setapprole创建。
注意
OUTPUT
cookie 参数sp_setapprole
当前记录为 varbinary(8000),这是正确的最大长度。 但是,目前执行返回 varbinary(50) 。 应用程序应继续保留 varbinary(8000), 以便在 Cookie 返回大小在未来版本中增加时应用程序继续正常运行。
返回代码值
0 (成功) 和 1 (失败)
注解
使用 sp_setapprole
应用程序角色激活后,该角色将保持活动状态,直到用户断开与服务器的连接或执行 sp_unsetapprole
。
有关应用程序角色的概述,请参阅 应用程序角色。
权限
要求在激活应用程序角色时公开并了解保存的 Cookie 的成员身份。
示例
使用 Cookie 激活应用程序角色,然后还原到以前的上下文
以下示例使用密码 Sales11
激活 fdsd896#gfdbfdkjgh700mM
应用程序角色并创建一个 cookie。 该示例返回当前用户的名称,然后通过执行 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