sp_addapprole (Transact-SQL)
アプリケーション ロールを現在のデータベースに追加します。
重要 |
---|
この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。 新しい開発作業では、この機能の使用を避け、現在この機能を使用しているアプリケーションは修正するようにしてください。代わりに CREATE APPLICATION ROLE を使用してください。 |
構文
sp_addapprole [ @rolename = ] 'role' , [ @password = ] 'password'
引数
[ @rolename = ] 'role'
新しいアプリケーション ロールの名前を指定します。role のデータ型は sysname で、既定値はありません。role には、現在のデータベース内に存在しない、有効な識別子を指定します。アプリケーション ロール名の長さは 1 ~ 128 文字で、英字、記号、および数字を含めることができます。ロール名には円記号 (\) を含めることはできません。また、NULL や空文字列 ('') にはできません。
[ @password = ] 'password'
アプリケーション ロールをアクティブにするために必要なパスワードを指定します。password のデータ型は sysname で、既定値はありません。password は NULL にはできません。
戻り値
0 (成功) または 1 (失敗)
説明
以前のバージョンの SQL Server では、ユーザー (およびロール) はスキーマと完全には区別されていません。SQL Server 2005 以降では、スキーマはロールとは完全に区別されています。この新しいアーキテクチャは CREATE APPLICATION ROLE の動作に反映されています。このステートメントは、sp_addapprole の代わりに使用されます。詳細については、「ユーザーとスキーマの分離」を参照してください。
以前のバージョンの SQL Server との互換性を維持するために、sp_addapprole は次の処理を行います。
アプリケーション ロールと同じ名前のスキーマが存在しない場合、同じ名前のスキーマが作成されます。新しいスキーマは、アプリケーション ロールが所有し、そのアプリケーション ロールの既定のスキーマになります。
アプリケーション ロールと同じ名前のスキーマが既に存在する場合、この処理は失敗します。
パスワードの複雑性は、sp_addapprole では確認されません。ただし、CREATE APPLICATION ROLE では確認されます。
パラメータ password は、一方向のハッシュとして格納されます。
sp_addapprole ストアド プロシージャをユーザー定義のトランザクションの内部から実行することはできません。
セキュリティに関する注意 |
---|
Microsoft ODBC の encrypt オプションは、SqlClient ではサポートされていません。可能な場合は、アプリケーション ロールの資格情報の入力を求めるメッセージを実行時に表示してください。資格情報をファイルに保存するのは避けてください。資格情報を保持する必要がある場合は、CryptoAPI 関数を使用して暗号化します。 |
権限
データベースに対する ALTER ANY APPLICATION ROLE 権限が必要です。新しいロールと同じ名前および同じ所有者のスキーマが存在しない場合は、そのデータベースに対する CREATE SCHEMA 権限も必要です。
例
次の例では、新しいアプリケーション ロール SalesApp を、パスワード x97898jLJfcooFUYLKm387gf3 を使用して現在のデータベースに追加します。
EXEC sp_addapprole 'SalesApp', 'x97898jLJfcooFUYLKm387gf3' ;
GO