sp_unsetapprole (Transact-SQL)

适用范围:SQL Server

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

Transact-SQL 语法约定

语法

sp_unsetapprole [ @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 的成员身份

示例

以下示例使用密码 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