sp_unsetapprole (Transact-SQL)

适用于:SQL Server (所有受支持的版本)

停用应用程序角色并恢复到前一个安全上下文。

主题链接图标Transact-SQL 语法约定

语法

  
sp_unsetapprole @cookie   

参数

@cookie
指定在激活应用程序角色时创建的 Cookie。 cookie 由 sp_setapprole (Transact-SQL) 创建。 varbinary (8000) .

注意

sp_setapprole 的 cookie OUTPUT 参数现记载为 varbinary(8000) ,这是正确的最大长度。 但是,目前执行返回 varbinary(50) 。 应用程序应继续保留 varbinary (8000) ,这样,如果 Cookie 返回大小在未来版本中增加,应用程序将继续正常运行。

返回代码值

0 (成功) 和 1 (失败)

备注

使用 sp_setapprole激活应用程序角色后,该角色将保持活动状态,直到用户断开与服务器的连接或执行 sp_unsetapprole

有关应用程序角色的概述,请参阅 应用程序角色

权限

要求在激活应用程序角色时具有 公共 身份并了解保存的 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)