Microsoft Entra 認証を使用した SQL Server 用のリンク サーバー

適用対象: SQL Server 2022 (16.x) 以降のバージョン

リンク サーバーは、Microsoft Entra ID (旧称 Azure Active Directory) による認証を使用して構成できるようになりました。資格情報を提供するための 3 つのメカニズムがサポートされています。

  • パスワード
  • アクセス トークン
  • マネージド ID (SQL Server 2025 以降)

この記事では、パスワードとアクセス トークンの認証について説明します。 SQL Server 2025 以降では、リンク サーバーにマネージド ID 認証を使用することもできます。 詳細については、「 リンク サーバーのマネージド ID を構成する」を参照してください。

この記事は、2 つの SQL Server インスタンス (S1 と S2) があることを前提としています。 どちらも Microsoft Entra 認証をサポートするように構成されており、それぞれ他方の SSL/TLS 証明書を信頼している必要があります。 この記事の例はサーバー S1 上で実行され、サーバー S2 へのリンク サーバーを作成します。

前提条件

メモ

S2 で使用される SSL/TLS 証明書のサブジェクト名は、provstr 属性で指定されたサーバー名と一致する必要があります。 これは、完全修飾ドメイン名 (FQDN) または の S2のいずれかとする必要があります。

Microsoft Entra 認証用のリンク サーバーの構成

パスワード認証を使用した場合、および Azure アプリケーション シークレットまたはアクセス トークンを使用した場合のリンク サーバーの構成について説明します。

パスワード認証を使用したリンク サーバーの構成

メモ

Microsoft Entra ID はAzure Active Directory (Azure AD) の新しい名前ですが、既存の環境の中断を防ぐために、UI フィールド、接続プロバイダー、エラー コード、コマンドレットなど、ハードコーディングされた一部の要素でAzure AD が残ります。 この記事では、この 2 つの名称は置き換え可能です。

パスワード認証の場合、Authentication=ActiveDirectoryPasswordで を使用すると、Microsoft Entra パスワード認証を使用するようにリンク サーバーに通知されます。 S1 上の各ログインを S2 上の Microsoft Entra ログインにマップするには、リンク サーバー ログインを作成する必要があります。

  1. SSMS で、S1 に接続し、[ObjectExplorer] ウィンドウで [ServerObjects] を展開します。

  2. [リンク サーバー] を右クリックし、[新しいリンク サーバー] を選択します。

  3. リンク サーバーの詳細を入力します。

    • リンク サーバー: S2 またはリンク サーバーの名前を使用します。
    • サーバーの種類: Other data source。
    • プロバイダー: Microsoft OLE DB Driver for SQL Server。
    • 製品名: 空のままにします。
    • データ ソース: 空のままにします。
    • プロバイダー文字列: Server=<fqdn of S2>;Authentication=ActiveDirectoryPassword。
    • カタログ: 空のままにします。

    パスワード認証を使用してリンク サーバーを作成するスクリーンショット。

  4. [セキュリティ] タブをクリックします。

  5. [追加] を選択します。

    • ローカル ログイン: S1 への接続に使用するログイン名を指定します。
    • 権限借用: オフのままにします。
    • リモート ユーザー: S2 への接続に使用される Microsoft Entra ユーザーのユーザー名 (user@contoso.com の形式)。
    • リモート パスワード: Microsoft Entra ユーザーのパスワード。
    • 上記の一覧で定義されていないログインの場合、接続は次のようになります: Not be made
  6. [OK] を選択します。

    リンク サーバーのセキュリティ設定のスクリーンショット。

アクセス トークン認証を使用したリンク サーバーの構成

アクセス トークン認証の場合、リンク サーバーはAccessToken=%s内の で作成されます。 リンク サーバー ログインは、S1 内の各ログインを へのログイン アクセス許可が付与された S2にマップするために作成されます。 アプリケーションには、アクセス トークンを生成する場合に S1 によって使用されるシークレットが割り当てられている必要があります。 シークレットを作成するには、[Azure portal]>[Microsoft Entra ID]>[アプリの登録]>YourApplication>[証明書とシークレット]>[新しいクライアント シークレット] の順に移動します。

Azure portal でアプリケーションの新しいクライアント シークレットを作成するスクリーンショット。

  1. SSMS で、S1 に接続し、[ObjectExplorer] ウィンドウで [ServerObjects] を展開します。

  2. [リンク サーバー] を右クリックし、[新しいリンク サーバー] を選択します。

  3. リンク サーバーの詳細を入力します。

    • リンク サーバー: S2 またはリンク サーバーの名前を使用します。
    • サーバーの種類: Other data source。
    • プロバイダー: Microsoft OLE DB Driver for SQL Server。
    • 製品名: 空のままにします。
    • データ ソース: 空のままにします。
    • プロバイダー文字列: Server=<fqdn of S2>;AccessToken=%s。
    • カタログ: 空のままにします。

    アクセス トークン認証を使用してリンク サーバーを作成するスクリーンショット。

  4. [セキュリティ] タブをクリックします。

  5. [追加] を選択します。

    • ローカル ログイン: S1 への接続に使用するログイン名を指定します。
    • 権限借用: オフのままにします。
    • リモート ユーザー: S2 への接続に使用される Microsoft Entra アプリケーションのクライアント ID。 アプリケーション (クライアント) ID は、Microsoft Entra アプリケーションの [概要] メニューで確認できます。
    • リモート パスワード: アプリケーションの新しいクライアント シークレットを作成して取得したシークレット ID。
    • 上記の一覧で定義されていないログインの場合、接続は次のようになります: Not be made
  6. [OK] を選択します。