分享方式:


sp_unsetapprole (Transact-SQL)

適用於:SQL Server

停用應用程式角色,並還原為先前的安全性內容。

Transact-SQL 語法慣例

語法

sp_unsetapprole [ @cookie = ] cookie
[ ; ]

引數

指定啟動應用程式角色時所建立的 Cookie。 @cookie為 varbinary(8000),沒有預設值。 cookie 是由 sp_setapprole所建立。

注意

的 Cookie OUTPUT 參數 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