具有 Microsoft Entra 身份验证的 SQL Server 链接服务器

适用于: SQL Server 2022 (16.x)

现在可使用具有 Microsoft Entra ID(以前称为 Azure Active Directory)的身份验证配置链接服务器,支持两种提供凭据的机制:

  • 密码
  • 访问令牌

本文假设有两个 SQL Server 实例(S1S2)。 两者都已配置为支持 Microsoft Entra 身份验证,并且信任彼此的 SSL/TLS 证书。 本文中的示例在服务器 S1 上执行,以创建到服务器 S2 的链接服务器。

先决条件

注意

S2 使用的 SSL/TLS 证书的主题名称必须与 provstr 属性中提供的服务器名称相匹配。 这应该是完全限定的域名 (FQDN) 或 S2 的主机名

适用于 Microsoft Entra 身份验证的链接服务器配置

我们将介绍使用密码身份验证和使用 Azure 应用程序机密或访问令牌来配置链接服务器。

使用密码身份验证的链接服务器配置

注意

虽然 Microsoft Entra ID 是 Azure Active Directory (Azure AD) 的新名称,但为了防止中断现有环境,Azure AD 仍保留在一些硬编码的元素中,例如 UI 字段、连接提供程序、错误代码和 cmdlet。 在本文中,这两个名称可以互换。

对于密码验证,在“提供程序字符串”中使用 Authentication=ActiveDirectoryPassword 将告知链接服务器使用 Microsoft Entra 密码验证。 必须创建一个链接服务器登录,才能将 S1 上的每个登录映射到 S2 上的 Microsoft Entra 登录。

  1. 在 SSMS 中,连接到 S1 并在“对象资源管理器”窗口中展开“服务器对象”

  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. 选择“确定”

    设置链接服务器的安全性的屏幕截图

使用访问令牌身份验证的链接服务器配置

对于访问令牌身份验证,链接服务器是使用“提供程序字符串”中的 AccessToken=%s 创建的。 创建一个链接服务器登录,以将 S1 中的每个登录映射到已被授予 S2 登录权限的 Microsoft Entra 应用程序。 应用程序必须分配有一个机密,S1 将使用该机密来生成访问令牌。 可通过导航到 Azure 门户>Microsoft Entra ID>应用注册>YourApplication>证书密码>新建客户端密码来创建密码。

在 Azure 门户中为应用程序创建新客户端密码的屏幕截图

  1. 在 SSMS 中,连接到 S1 并在“对象资源管理器”窗口中展开“服务器对象”

  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。 可在 Microsoft Entra 应用程序的“概述”菜单中找到应用程序(客户端)ID
    • 远程密码:通过为应用程序创建新客户端密码而获得的机密 ID
    • 对于上面列表中未定义的登录,连接将:Not be made
  6. 选择“确定”

另请参阅