sp_addapprole (Transact-SQL)

適用対象:SQL Server

アプリケーション ロールを現在のデータベースに追加します。

重要

この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに CREATE APPLICATION ROLE を使用してください。

Transact-SQL 構文表記規則

構文

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