sp_unsetapprole (Transact-SQL)

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

主題連結圖示 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 為止。

如需應用程式角色的概觀,請參閱<應用程式角色>。

權限

需要 public 中的成員資格以及對啟動應用程式角色時所儲存 Cookie 的暸解。

範例

下列範例會啟動含有密碼 fdsd896#gfdbfdkjgh700mM 的 Sales11 應用程式角色,然後建立 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)