sp_unsetapprole (Transact-SQL)
适用于: (所有受支持的版本的 SQL Server)
停用应用程序角色并恢复到前一个安全上下文。
语法
sp_unsetapprole @cookie
参数
@cookie
指定在激活应用程序角色时创建的 Cookie。 cookie 是通过sp_setapprole (SQL transact-sql) 创建的。 varbinary (8000) 。
注意
sp_setapprole 的 cookie OUTPUT 参数现记载为 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();
-- 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
另请参阅
sp_setapprole (Transact-SQL)
系统存储过程 (Transact-SQL)
安全存储过程 (Transact-SQL)
CREATE APPLICATION ROLE (Transact-SQL)
DROP APPLICATION ROLE (Transact-SQL)