具有 Microsoft Entra 身份验证的 SQL Server 链接服务器
适用于: SQL Server 2022 (16.x)
现在可使用具有 Microsoft Entra ID(以前称为 Azure Active Directory)的身份验证配置链接服务器,支持两种提供凭据的机制:
- 密码
- 访问令牌
本文假设有两个 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 或更高版本。 或,下载最新的 Azure Data Studio。
注意
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 登录。
在 SSMS 中,连接到
S1
并在“对象资源管理器”窗口中展开“服务器对象”。右键单击链接服务器,然后选择“新建链接服务器”。
填写链接服务器详细信息:
- 链接服务器:
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
- 本地登录:指定用于连接到
选择“确定”。
使用访问令牌身份验证的链接服务器配置
对于访问令牌身份验证,链接服务器是使用“提供程序字符串”中的 AccessToken=%s
创建的。 创建一个链接服务器登录,以将 S1
中的每个登录映射到已被授予 S2
登录权限的 Microsoft Entra 应用程序。 应用程序必须分配有一个机密,S1
将使用该机密来生成访问令牌。 可通过导航到 Azure 门户>Microsoft Entra ID>应用注册>YourApplication
>证书密码>新建客户端密码来创建密码。
在 SSMS 中,连接到
S1
并在“对象资源管理器”窗口中展开“服务器对象”。右键单击链接服务器,然后选择“新建链接服务器”。
填写链接服务器详细信息:
- 链接服务器:
S2
或使用你的链接服务器的名称。 - 服务器类型:
Other data source
。 - 提供程序:
Microsoft OLE DB Driver for SQL Server
。 - 产品名称:留空。
- 数据源:留空。
- 提供程序字符串:
Server=<fqdn of S2>;AccessToken=%s
。 - 目录:留空。
- 链接服务器:
选择“安全”选项卡。
选择 添加 。
- 本地登录:指定用于连接到
S1
的登录名。 - 模拟:保持未选中状态。
- 远程用户:用于连接到 S2 的 Microsoft Entra 应用程序的客户端 ID。 可在 Microsoft Entra 应用程序的“概述”菜单中找到应用程序(客户端)ID。
- 远程密码:通过为应用程序创建新客户端密码而获得的机密 ID。
- 对于上面列表中未定义的登录,连接将:
Not be made
- 本地登录:指定用于连接到
选择“确定”。