次の方法で共有


アプリケーション ロールの作成

適用対象:SQL ServerAzure SQL データベースAzure SQL Managed Instance

このトピックでは、SQL Server Management Studio または Transact-SQL を使用して SQL Server にアプリケーション ロールを作成する方法について説明します。 アプリケーション ロールは、特定のアプリケーションを使用する場合を除き、データベースへのユーザー アクセスを制限します。 アプリケーション ロールにはユーザーが含まれないため、 [アプリケーション ロール] が選択されている場合には、 [ロール メンバー] の一覧は表示されません。

重要

アプリケーション ロールのパスワードを設定するときには、パスワードの複雑性が確認されます。 アプリケーション ロールを呼び出すアプリケーションは、これらのパスワードを格納する必要があります。 アプリケーション ロールのパスワードは常に暗号化して保存する必要があります。

このトピックの内容

始める前に

バックグラウンド

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 権限が必要です。

SQL Server Management Studio を使用する

アプリケーション ロールを作成するには
  1. オブジェクト エクスプローラーで、アプリケーション ロールを作成するデータベースを展開します。

  2. [セキュリティ] フォルダーを展開します。

  3. [ロール] フォルダーを展開します。

  4. [アプリケーション ロール] フォルダーを右クリックし、[新しいアプリケーション ロール...] をクリックします。

  5. [アプリケーション ロール - 新規] ダイアログ ボックスの [全般] ページで、[ロール名] ボックスに、新しいアプリケーション ロールの名前を入力します。

  6. [既定のスキーマ] ボックスで、オブジェクト名の入力によってこのロールが作成するオブジェクトを所有するスキーマを指定します。 または、省略記号 [...] をクリックして、[スキーマの検索] ダイアログ ボックスを開きます。

  7. [パスワード] ボックスに、新しいロールのパスワードを入力します。 [パスワードの確認] ボックスに、パスワードを再度入力します。

  8. [このロールが所有するスキーマ]から、このロールが所有するスキーマを選択または表示します。 スキーマを所有できるのは、1 つのスキーマまたはロールのみです。

  9. [OK] を選択します。

追加オプション

[アプリケーション ロール - 新規] ダイアログ ボックスには、[セキュリティ保護可能なリソース][拡張プロパティ] という 2 つのページもあり、それぞれにオプションが用意されています。

  • [セキュリティ保護可能なリソース] ページには、すべてのセキュリティ保護可能なリソースと、ログインに付与できる、セキュリティ保護可能なリソースに対する権限が一覧表示されます。

  • [拡張プロパティ] ページでは、カスタム プロパティをデータベース ユーザーに追加できます。

Transact-SQL の使用

アプリケーション ロールを作成するには

  1. オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。

    -- Creates an application role called "weekly_receipts" that has the password "987Gbv876sPYY5m23" and "Sales" as its default schema.  
    
    CREATE APPLICATION ROLE weekly_receipts   
        WITH PASSWORD = '987G^bv876sPY)Y5m23'   
        , DEFAULT_SCHEMA = Sales;  
    GO  
    

詳細については、「CREATE APPLICATION ROLE (Transact-SQL)」を参照してください。