sp_setapprole (Transact-SQL)
更新 : 2006 年 7 月 17 日
現在のデータベースのアプリケーション ロールに関連付けられている権限をアクティブにします。
構文
sp_setapprole [ @rolename = ] 'role',
[ @password = ] { encrypt N'password' }
|
'password' [ , [ @encrypt = ] { 'none' | 'odbc' } ]
[ , [ @fCreateCookie = ] true | false ]
[ , [ @cookie = ] @cookie OUTPUT ]
引数
- [ @rolename = ] 'role'
現在のデータベースで定義されているアプリケーション ロールの名前を指定します。role のデータ型は sysname で、既定値はありません。role は現在のデータベースに存在する必要があります。
[ @password = ] { encrypt N'password' }
アプリケーション ロールをアクティブにするために必要なパスワードを指定します。password のデータ型は sysname で、既定値はありません。password は、ODBC 暗号化関数を使用して暗号化できます。暗号化関数を使用するときには、最初の引用符の前に N を追加して、パスワードを Unicode 文字列に変換する必要があります。暗号化オプションは、SqlClient を使用する接続ではサポートされません。
重要 : ODBC 暗号化関数では、暗号化は提供されません。ネットワーク経由で転送されるパスワードを保護する場合は、この関数は使用しないでください。情報をネットワーク経由で転送する場合は、SSL または IPSec を使用します。
- @encrypt = 'none'
暗号化を使用しないことを示します。パスワードはプレーン テキストとして SQL Server に渡されます。これは既定のオプションです。
- @encrypt= 'odbc'
パスワードを SQL Server データベース エンジンに送信する前に、ODBC で ODBC 暗号化関数を使用してパスワードを暗号化します。これは、ODBC クライアントまたは OLE DB Provider for SQL Server を使用している場合にのみ指定できます。
- [ @fCreateCookie = ] true | false
cookie を作成するかどうかを指定します。暗黙的に、true は 1 に変換され、false は 0 に変換されます。
- [ @cookie = ] @cookie OUTPUT
Cookie を含める出力パラメータを指定します。cookie が生成されるのは、@fCreateCookie の値が true の場合のみです。データ型は varbinary(8000) です。
リターン コードの値
0 (成功) または 1 (失敗)
解説
アプリケーション ロールは、sp_setapprole を使用してアクティブ化された後、ユーザーがサーバーから切断するか、sp_unsetapprole が実行されるまで、アクティブな状態を維持します。sp_setapprole は、直接の Transact-SQL ステートメントでのみ実行できます。他のストアド プロシージャ内やユーザー定義のトランザクション内では、sp_setapprole は実行できません。
アプリケーション ロールの概要については、「アプリケーション ロール」を参照してください。
セキュリティ メモ : |
---|
ネットワーク経由で送信されるアプリケーション ロールのパスワードを保護するには、アプリケーション ロールを有効化するとき常に、暗号化された接続を使用してください。 Microsoft ODBC の encrypt オプションは、SqlClient ではサポートされていません。資格情報を格納する必要がある場合は、Crypto API 関数を使用して暗号化します。パラメータ password は、一方向のハッシュとして格納されます。以前のバージョンの SQL Server と互換性を保つため、sp_addapprole でパスワードの複雑性ポリシーは適用されません。パスワードの複雑性ポリシーを適用するには、CREATE APPLICATION ROLE を使用します。 |
権限
public のメンバシップと、ロールのパスワード情報が必要です。
例
A. オプションを暗号化せずにアプリケーション ロールをアクティブにする
次の例では、アプリケーション ロール SalesAppRole
をアクティブにします。このロールには、プレーン テキストのパスワード AsDeF00MbXX
が設定されており、現在のユーザーが使用するアプリケーション用に特別に設計された権限が与えられています。
EXEC sp_setapprole 'SalesApprole', 'AsDeF00MbXX';
GO
B. 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
参照
関連項目
システム ストアド プロシージャ (Transact-SQL)
セキュリティ ストアド プロシージャ (Transact-SQL)
CREATE APPLICATION ROLE (Transact-SQL)
DROP APPLICATION ROLE (Transact-SQL)
sp_unsetapprole (Transact-SQL)
その他の技術情報
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2006 年 7 月 17 日 |
|