適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
アプリケーション ロールを現在のデータベースに追加します。
構文
CREATE APPLICATION ROLE application_role_name
WITH PASSWORD = 'password' [ , DEFAULT_SCHEMA = schema_name ]
引数
application_role_name
アプリケーション ロールの名前を指定します。 この名前は、データベース内のどのプリンシパルへの参照にも使用されていない名前である必要があります。
PASSWORD = 'password'
データベース ユーザーがアプリケーション ロールのアクティブ化に使用するパスワードを指定します。 複雑なパスワードの使用をお勧めします。
password
は、SQL Server のインスタンスを実行しているコンピューターの Windows パスワード ポリシー要件を満たしている必要があります。
DEFAULT_SCHEMA = schema_name
このロール用のオブジェクトの名前を解決するときに、サーバーで最初に検索されるスキーマを指定します。 DEFAULT_SCHEMAが未定義のままの場合、アプリケーション ロールは既定のスキーマとして dbo
を使用します。
schema_name データベースに存在しないスキーマを指定できます。
注釈
重要
アプリケーション ロールのパスワードを設定するときには、パスワードの複雑性が確認されます。 アプリケーション ロールを呼び出すアプリケーションは、これらのパスワードを格納する必要があります。 アプリケーション ロールのパスワードは常に暗号化して保存する必要があります。
アプリケーション ロールは、sys.database_principals カタログ ビューで参照できます。
アプリケーション ロールの使用方法については、「アプリケーション ロール」をご覧ください。
注
スキーマは、データベース ユーザーと同等ではありません。 システム カタログ ビューを使用して、データベース ユーザーとスキーマの違いを特定します。
SQL Server 2012 (11.x) 以降、SQL Server と Azure SQL DB では、SHA-512 ハッシュと 32 ビットランダムおよび一意のソルトを組み合わせて使用しました。 この方法により、攻撃者がパスワードを推測することが統計的に不可能になりました。
SQL Server 2025 (17.x) プレビューでは、 パスワード ベースのキー派生関数 (PBKDF) とも呼ばれる反復ハッシュ アルゴリズム (RFC2898) が導入されています。 このアルゴリズムは SHA-512 を引き続き使用しますが、パスワードを複数回ハッシュし (100,000 回の反復)、ブルート フォース攻撃を大幅に遅くします。 この変更により、進化するセキュリティの脅威に対応したパスワード保護が強化され、お客様が NIST SP 800-63b ガイドラインに準拠するのに役立ちます。
アクセス許可
データベースに対する ALTER ANY APPLICATION ROLE 権限が必要です。
例
次の例では、アプリケーション ロール weekly_receipts
を作成します。このアプリケーション ロールのパスワードは 987Gbv876sPYY5m23
で、既定のスキーマは Sales
です。
CREATE APPLICATION ROLE weekly_receipts
WITH PASSWORD = '987G^bv876sPY)Y5m23'
, DEFAULT_SCHEMA = Sales;
GO