sp_unsetapprole (Transact-SQL)
アプリケーション ロールを非アクティブ化し、以前のセキュリティ コンテキストに戻します。
構文
sp_unsetapprole @cookie
引数
- @cookie
アプリケーション ロールがアクティブ化されたときに作成された cookie を指定します。cookie は sp_setapprole (Transact-SQL). varbinary(8000) で作成されます。
リターン コードの値
0 (成功) または 1 (失敗)
説明
アプリケーション ロールが sp_setapprole によりアクティブ化された後は、ユーザーがサーバーから切断するか sp_unsetapprole を実行するまで、そのロールはアクティブのままです。
アプリケーション ロールの概要については、「アプリケーション ロール」を参照してください。
権限
public のメンバシップと、アプリケーション ロールがアクティブ化されたときに保存された cookie の情報が必要です。
例
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