次の方法で共有


sp_unsetapprole (Transact-SQL)

アプリケーション ロールを非アクティブ化し、以前のセキュリティ コンテキストに戻します。

トピック リンク アイコン Transact-SQL 構文表記規則

構文

sp_unsetapprole @cookie 

引数

  • @cookie
    アプリケーション ロールがアクティブ化されたときに作成されたクッキーを指定します。 クッキーは、sp_setapprole (Transact-SQL) で作成されます。 varbinary(8000).

    注意

    sp_setapprole のクッキーの OUTPUT パラメーターは現在、適切な最大長である varbinary(8000) としてドキュメントに記載されています。 ただし、現在の実装では varbinary(50) を返します。 将来のリリースでクッキーの戻り値のサイズが増えた場合にアプリケーションが引き続き正常に動作するように、アプリケーションでは varbinary(8000) を継続して予約しておく必要があります。

リターン コード値

0 (成功) または 1 (失敗)

説明

アプリケーション ロールが sp_setapprole によりアクティブ化された後は、ユーザーがサーバーから切断するか sp_unsetapprole を実行するまで、そのロールはアクティブのままです。

アプリケーション ロールの概要については、「アプリケーション ロール」を参照してください。

権限

public のメンバーシップと、アプリケーション ロールがアクティブ化されたときに保存された クッキーの情報が必要です。

使用例

クッキーの作成を指定してアプリケーション ロールをアクティブ化し、その後以前のコンテキストに戻す

次の例では、パスワード fdsd896#gfdbfdkjgh700mM が設定されているアプリケーション ロール Sales11 をアクティブ化し、クッキーを作成します。 この例では、現在のユーザーの名前が返されます。その後、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)