sp_addapprole (Transact-SQL)
適用対象: SQL Server
アプリケーション ロールを現在のデータベースに追加します。
重要
この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに CREATE APPLICATION ROLE を使用してください。
構文
sp_addapprole
[ @rolename = ] N'rolename'
, [ @password = ] N'password'
[ ; ]
引数
[ @rolename = ] N'rolename'
新しいアプリケーション ロールの名前。 @rolename は sysname で、既定値はありません。 @rolename は有効な識別子である必要があり、現在のデータベースにまだ存在できません。
アプリケーション ロール名には、文字、記号、数字を含む最大 128 文字を含めることができます。 ロール名に円記号 (\
) や NULL
または空の文字列 ('') を含めることはできません。
[ @password = ] N'password'
アプリケーション ロールをアクティブ化するために必要なパスワード。 @password は sysname で、既定値はありません。 @password を NULL
することはできません。
リターン コードの値
0
(成功) または 1
(失敗)。
解説
以前のバージョンの SQL Server では、ユーザー (およびロール) はスキーマと完全には区別されません。 SQL Server 2005 (9.x) 以降、スキーマはロールとは完全に異なります。 このアーキテクチャは、 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 権限も必要です。
例
次の例では、パスワード x97898jLJfcooFUYLKm387gf3
を持つ新しいアプリケーション ロール SalesApp
を現在のデータベースに追加します。
EXEC sp_addapprole 'SalesApp', 'x97898jLJfcooFUYLKm387gf3';
GO