Azure Arcで有効化されたSQL ServerのSQL認証を無効にしてください

適用対象: SQL Server 2025 (17.x)

この記事では、Windows SQL Server 2025(17.x)で動作しているAzure Arcで有効化されたSQL ServerのSQL認証を無効にする方法を解説しています。 SQL認証を無効にすると、インスタンスはMicrosoft Entra認証とWindows 認証のみを受け入れます。 この設定を簡単に元に戻せ、SQL Serverインスタンスを再起動せずに有効に機能します。 この設定は、Azure SQL DatabaseおよびAzure SQL Managed InstanceのMicrosoft Entraのみ認証に相当するSQL Server版です。

SQL認証を無効にする方法

SQL ServerでSQL認証を無効にした場合:

  • エンジンは新しいSQL認証のログイン試行をすべてブロックし、Microsoft EntraとWindows 認証のみを受け入れます。
  • ブロックされたSQLログインはエラー18456(ログイン失敗)を受け取ります。
  • 既存のログイン情報とユーザーはそのまま維持されます。 SQLログインやSQL認証を使用するデータベースユーザーは、その定義と権限を保持します。 ただし、SQL認証を再有効にしないとサインインできません。
  • 既存のアクティブなSQL認証セッションは影響を受けません。 設定は新しい接続のみをブロックします。
  • この設定はインスタンス(サーバー)レベルで、インスタンス上のすべてのデータベースに適用されます。
  • この設定は、SQL ServerのAzure拡張機能が変更を適用し終えた後、再起動なしで有効になります。 Microsoft Entra IDページの他の設定と同様に、この拡張機能の設定適用には数分かかります。 Azureポータルは拡張機能が動作している間に処理中のメッセージを表示し、変更が適用されると Saved successfully に確認します。 拡張がインスタンスにサーバープロパティをどのように適用するかについては、「Azure Arcで有効化されたSQL Serverの設定」をご覧ください。

Prerequisites

  • Windows 上で実行される、Azure Arc によって有効化された SQL Server 2025 (17.x) の SQL Server インスタンス。 SQL Serverの初期バージョンではSQL認証の無効化はサポートされていません。
  • SQL Server 用 Azure 拡張機能 バージョン1.1.3394.392以降 詳しくは、リリース ノートのページをご覧ください。
  • SQL Serverインスタンス用に設定されたプライマリ管理IDです。 SQL Serverはマネージドアイデンティティを使ってMicrosoft Entraトークンの検証を行います。 詳細については、「チュートリアル: SQL Server の Microsoft Entra 認証」を参照してください。

Permissions

SQL認証を有効または無効にするには、AzureポータルのSQL Serverリソース上のAzure拡張のSQL Serverを管理する権限が必要です。 リソース上の所有者貢献者などの高権限のAzure役割が設定管理を行えます。 インスタンスのMicrosoft Entra管理者設定と同じ権限で、この設定も設定できます。

環境を準備する

SQL認証を無効にすると、ログインを含むsaSQLログイン接続がブロックされます。

SQL認証を無効にする前に:

  • 少なくとも1つのMicrosoft Entraログインがインスタンス上で必要な管理作業を実行できることを確認してください。
  • アプリケーションをMicrosoft EntraまたはWindows 認証にアップデートしてください。

管理者のMicrosoft Entraログインに権限を与える際は、必要な権限だけを付与するという最小権限の原則に従いましょう。 例えば、特定の ALTER ANY LOGINALTER ANY USER 権限、または サーバーロールのメンバーシップを付与し、完全な システム管理者 権限を付与しません。ただし、より広範な管理が必要でない限り。

データプレーンアクセスを失った場合は、AzureポータルからSQL認証を再有効にしてください。 この設定はSQL Server接続ではなく、Azureロールベースのアクセス制御で制御されます。

SQL認証を無効にする前にログインを移行してください

SQL認証を無効にすることは、すべてのSQLログインとパスワードベースの包含ユーザーに対して厳しい制限なので、まずログイン認証を移行してください。

ログイン認証を移行するには、以下の手順に従ってください:

  1. どのプリンシパルが実際に繋がっているかを特定しましょう。 メタデータは 何が存在するかを教えてくれます。監査は何 が使われているかを教えてくれます。 SUCCESSFUL_LOGIN_GROUPアクショングループでSQL Server監査を有効にして、どのログインや含まれたユーザーがSQL認証で認証されているか確認してください。 インスタンス上に存在するSQLログインを一覧表示するには、以下のクエリを実行します。

    SELECT name, type_desc, is_disabled, create_date
    FROM sys.server_principals
    WHERE type_desc = 'SQL_LOGIN'
    ORDER BY name;
    

    次に、各ユーザーデータベースで以下のクエリを実行し、ブロックされているパスワードベースの包含ユーザーを探します。

    SELECT name, type_desc
    FROM sys.database_principals
    WHERE type = 'S' AND authentication_type_desc = 'DATABASE'
    ORDER BY name;
    
  2. Microsoft Entraの同等のものを作成し、マッチング権限を付与します。 まだ必要なSQLログインや含まれるユーザーごとに、対応するMicrosoft Entraのログインまたはユーザーを作成し、同等の権限を付与します。 詳細については、「チュートリアル: SQL Server の Microsoft Entra 認証」を参照してください。

  3. SQL認証に接続するすべてのものを更新してください。 アプリケーション、SQL Server エージェントジョブ、リンクサーバー、レプリケーション、保守スクリプトを再構成し、Microsoft Entra認証またはWindows 認証を使用し、Microsoft Entra認証をサポートするクライアントドライバーバージョンにアップグレードしてください。 これらの機能はすべてMicrosoft Entra認証に対応しているので、SQL認証のままにするのではなく移動してください。

  4. SQL認証トラフィックが残っていないことを確認する。 監査データを再度確認し、すべての接続がMicrosoft EntraまたはWindows 認証に移行しているかを確認してから、SQL認証を無効にしてください。

以下のウォークスルーではAzure SQL Databaseのパスワードレス認証を設定していますが、在庫管理、権限の再作成、検証の手順はSQL Serverにも同様に適用されます:Microsoft Entraによるパスワードレス認証によるAzure SQL Databaseのセキュリティ:移行ガイド

SQL認証を無効にする

WindowsのSQL Server 2025(17.x)インスタンスのSQL認証を、Azureポータルから直接無効にするには、以下の手順に従ってください:

  1. AzureポータルのSQL Serverインスタンスリソースにアクセスしてください。

  2. 設定Microsoft Entra IDを選択してMicrosoft Entra IDペインを開きます。

    1. もしまだ選択していなければ、「 プライマリ管理IDを使う」というボックスを選択してください。
    2. SQL認証を無効にするには「 SQL認証を無効 にする」チェックボックスを選択してください。
    3. 新しい設定を保存するには 「保存 」を選択してください:

    AzureポータルのMicrosoft Entra IDペインのスクリーンショットで、「SQL認証を無効化」チェックボックスが選択され、「保存」ボタンがハイライトされています。

保存後、SQL Server用のAzure拡張機能がその設定をインスタンスに適用します。 数分かかります。ポータルは拡張機能が動作している間に処理中のメッセージが表示され、変更が適用された時には Saved successfully に確認します。 再起動は必要ありません。 延長通話が失敗した場合は、数分待ってから再度保存を選択してください。

SQL認証を再有効にするには、「 SQL認証を無効に する」チェックボックスをクリアし、「 保存」を選択してください。

変更が有効かどうかを確認するには、「 認証状況の確認」をご覧ください。

認証の状態を確認する

SERVERPROPERTY関数IsExternalAuthenticationOnlyを使って、インスタンス上でSQL認証が無効化されているかどうかを確認できます。 1の値はSQL認証が無効化されていることを示します(Microsoft EntraおよびWindows 認証のみ);0はSQL認証が有効であることを示します。

SELECT SERVERPROPERTY('IsExternalAuthenticationOnly');

Remarks

以下のコメントを考えてみてください。

  • SQL 認証を無効 化する設定は、インスタンスにプライマリ管理IDが必要です。
  • SQL認証が無効になっている間は、プライマリ管理IDを削除することはできません。 まずSQL認証を再有効にしてください。
  • 無効にするSQL認証 はデフォルトでクリアされているため、SQL認証が許可されています。

制限事項

SQL認証は、Azure Arc on Windowsで有効化されたSQL Server 2025(17.x)インスタンスのみを無効にできます。