適用対象:SQL Server 2022 (16.x)
リンク サーバーは、Microsoft Entra ID (旧称 Azure Active Directory) 認証で authentication を使用して構成できるようになりました。また、資格情報を提供するための 2 つのメカニズムがサポートされます。
- パスワード
- アクセス トークン
この記事は、2 つの SQL Server インスタンス (S1 と S2) があることを前提としています。 どちらも Microsoft Entra 認証をサポートするように構成されており、それぞれ他方の SSL/TLS 証明書を信頼している必要があります。 この記事の例はサーバー S1 上で実行され、サーバー S2 へのリンク サーバーを作成します。
前提条件
- SQL Server 用の Microsoft Entra 認証が完全に機能していること。 詳細については、「SQL Server 用の Microsoft Entra 認証」と「チュートリアル: SQL Server 用の Microsoft Entra 認証を設定する」を参照してください。
- SQL Server Management Studio (SSMS) バージョン 18.0 以降。
メモ
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 ログインにマップするには、リンク サーバー ログインを作成する必要があります。
SSMS で、
S1に接続し、[ObjectExplorer] ウィンドウで [ServerObjects] を展開します。[リンク サーバー] を右クリックし、[新しいリンク サーバー] を選択します。
リンク サーバーの詳細を入力します。
-
リンク サーバー:
S2またはリンク サーバーの名前を使用します。 -
サーバーの種類:
Other data source。 -
プロバイダー:
Microsoft OLE DB Driver for SQL Server。 - 製品名: 空のままにします。
- データ ソース: 空のままにします。
-
プロバイダー文字列:
Server=<fqdn of S2>;Authentication=ActiveDirectoryPassword。 - カタログ: 空のままにします。
-
リンク サーバー:
[セキュリティ] タブをクリックします。
[追加] を選択します。
-
ローカル ログイン:
S1への接続に使用するログイン名を指定します。 - 権限借用: オフのままにします。
-
リモート ユーザー: S2 への接続に使用される Microsoft Entra ユーザーのユーザー名 (
user@contoso.comの形式)。 - リモート パスワード: Microsoft Entra ユーザーのパスワード。
-
上記の一覧で定義されていないログインの場合、接続は次のようになります:
Not be made
-
ローカル ログイン:
[OK] を選択します。
アクセス トークン認証を使用したリンク サーバーの構成
アクセス トークン認証の場合、リンク サーバーはAccessToken=%s内の で作成されます。 リンク サーバー ログインは、S1 内の各ログインを へのログイン アクセス許可が付与された S2にマップするために作成されます。 アプリケーションには、アクセス トークンを生成する場合に S1 によって使用されるシークレットが割り当てられている必要があります。 シークレットを作成するには、[Azure portal]>[Microsoft Entra ID]>[アプリの登録]>YourApplication>[証明書とシークレット]>[新しいクライアント シークレット] の順に移動します。
SSMS で、
S1に接続し、[ObjectExplorer] ウィンドウで [ServerObjects] を展開します。[リンク サーバー] を右クリックし、[新しいリンク サーバー] を選択します。
リンク サーバーの詳細を入力します。
-
リンク サーバー:
S2またはリンク サーバーの名前を使用します。 -
サーバーの種類:
Other data source。 -
プロバイダー:
Microsoft OLE DB Driver for SQL Server。 - 製品名: 空のままにします。
- データ ソース: 空のままにします。
-
プロバイダー文字列:
Server=<fqdn of S2>;AccessToken=%s。 - カタログ: 空のままにします。
-
リンク サーバー:
[セキュリティ] タブをクリックします。
[追加] を選択します。
-
ローカル ログイン:
S1への接続に使用するログイン名を指定します。 - 権限借用: オフのままにします。
- リモート ユーザー: S2 への接続に使用される Microsoft Entra アプリケーションのクライアント ID。 アプリケーション (クライアント) ID は、Microsoft Entra アプリケーションの [概要] メニューで確認できます。
- リモート パスワード: アプリケーションの新しいクライアント シークレットを作成して取得したシークレット ID。
-
上記の一覧で定義されていないログインの場合、接続は次のようになります:
Not be made
-
ローカル ログイン:
[OK] を選択します。