次の方法で共有


リンク サーバーのマネージド ID を構成する

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

SQL Server 2025 では、リンク サーバーのマネージド ID のサポートが導入され、SQL Server インスタンス間でセキュリティで保護された資格情報のない認証が可能になります。 この機能は、Azure Virtual Machines 上の SQL Server と、Azure Arc で有効になっている SQL Server の両方で使用できます。マネージド ID 認証を使用すると、パスワードを管理したり資格情報を保存したりすることなく、リンク サーバー接続を確立でき、セキュリティ体制が向上し、資格情報の管理が簡素化されます。

この記事では、マネージド ID 認証を使用してリンク サーバー接続を設定する方法について説明します。 接続を開始するようにソース サーバーを構成し、マネージド ID ベースの認証を受け入れるように移行先サーバーを構成します。

[前提条件]

開始する前に、次のことを確認してください。

  • 次のいずれかで実行されている SQL Server 2025:
    • SQL Server IaaS Agent 拡張機能がインストールされている Azure 仮想マシン、または
    • Azure Arc が有効になっているオンプレミスまたは仮想マシン
  • ソース サーバーと移行先サーバーの両方で構成された Microsoft Entra 認証
  • 適切なファイアウォール規則を使用した送信元サーバーと移行先サーバー間のネットワーク接続
  • 両方のインスタンスでログインを作成し、リンク サーバーを構成するための適切なアクセス許可
  • Azure Virtual Machines の場合: SqlIaasExtensionAADLogin 拡張機能の 両方が有効
  • Azure Arc 対応インスタンスの場合: Azure Arc エージェントがインストールされ、構成されている

Azure 仮想マシンの要件

Azure Virtual Machines で SQL Server を使用する場合:

Azure Arc 対応の要件

Azure Arc で有効になっている SQL Server を使用する場合:

  1. Azure Arc で有効になっている SQL Server の前提条件に従って、SQL Server 2025 インスタンスに Azure Arc をインストールして構成します。
  2. 「アプリの登録を使用した Microsoft Entra 認証の設定」のガイダンスを使用して 、Microsoft Entra 認証を設定します。
  3. 移行元サーバーと移行先サーバーの間のネットワーク接続を確認します。

移行先サーバーでログインを作成する

移行先サーバーには、移行元サーバーの名前と一致するログインが必要です。 ソース サーバーは、マネージド ID を使用して接続するときに、マシンのマネージド ID を使用して認証します。 移行先サーバーは、外部プロバイダーから作成されたログインと照合することで、この ID を検証します。

  1. 移行先の SQL Server インスタンスに接続します。

  2. ソース サーバーの名前を使用してログインを作成します。

    USE [master];
    GO
    
    CREATE LOGIN [AzureSQLVMSource]
    FROM EXTERNAL PROVIDER
    WITH DEFAULT_DATABASE = [master],
         DEFAULT_LANGUAGE = [us_english];
    GO
    
  3. ログインに適切なサーバー レベルのアクセス許可を付与します。 たとえば、 sysadmin ロールを付与するには、次のようにします。

    ALTER SERVER ROLE [sysadmin] ADD MEMBER [AzureSQLVMSource];
    GO
    

    ヒント

    sysadminを使用するのではなく、特定のユース ケースに必要なアクセス許可のみを付与することで、最小限の特権の原則を適用します。

ソース サーバーでリンク サーバーを構成する

移行先サーバーでログインを作成した後、移行元サーバーでリンク サーバー接続を構成します。 この構成では、マネージド ID 認証で MSOLEDBSQL プロバイダーを使用します。

  1. ソース SQL Server インスタンスに接続します。

  2. sp_addlinkedserverを使用してリンク サーバーを作成します。

    USE [master];
    GO
    
    EXEC master.dbo.sp_addlinkedserver
        @server = N'AzureSQLVMDestination',
        @srvproduct = N'',
        @provider = N'MSOLEDBSQL',
        @datasrc = N'AzureSQLVMDestination',
        @provstr = N'Authentication=ActiveDirectoryMSI;';
    GO
    

    @provstr パラメーターは、マネージド ID を使用するようにリンク サーバーに指示する認証ActiveDirectoryMSI指定します。

  3. リンクサーバーのログインマッピングを設定する:

    EXEC master.dbo.sp_addlinkedsrvlogin
        @rmtsrvname = N'AzureSQLVMDestination',
        @useself = N'False',
        @locallogin = NULL,
        @rmtuser = NULL,
        @rmtpassword = NULL;
    GO
    

    この構成では、明示的なユーザー資格情報を必要とせずに、マネージド ID を使用するようにリンク サーバーを設定します。

リンク サーバー接続をテストする

構成後、リンク サーバー接続が正しく動作することを確認します。

  1. sp_testlinkedserverを使用して接続をテストします。

    EXECUTE master.dbo.sp_testlinkedserver AzureSQLVMDestination;
    GO
    
  2. テストが成功した場合は、リモート サーバーに対してクエリを実行できます。 例えば次が挙げられます。

    SELECT * FROM [AzureSQLVMDestination].[master].[sys].[databases];
    GO
    

テストが失敗した場合は、次のことを確認します。

  • Microsoft Entra 認証が両方のサーバーで正しく構成されている
  • 移行先サーバーのログインがソース サーバー名と正確に一致する
  • サーバー間にネットワーク接続が存在する
  • ファイアウォール規則によって SQL Server トラフィックが許可される
  • Azure VM に対して必要な拡張機能 (SqlIaasExtensionAADLogin) が有効になっている