使用 MSDASQL 的链接服务器查询失败并出现错误 7416

适用于:

  • 自 2026 年 4 月以来的 SQL Server 2025 CU 和 GDR 更新
  • 自 2026 年 3 月起的 SQL Server 2022 CU 和 GDR 更新
  • SQL Server 2019 自 2026 年 4 月以来的 CU 和 GDR 更新
  • 自 2026 年 4 月以来的 SQL Server 2017 CU 和 GDR 更新
  • 自 2026 年 4 月以来的 SQL Server 2016 SP3 和 Azure Connect Pack GDR 更新
  • Azure SQL 托管实例

总结

本文介绍了一个已知问题:使用 MSDASQL(OLE DB Provider for ODBC Drivers)提供程序并指定提供程序字符串的链接服务器查询会失败,并产生错误 7416。 本文还提供了在不回滚更新的情况下还原链接服务器连接的解决方法。

症状

当并非 sysadmin 固定服务器角色成员的用户运行此查询时,使用 MSDASQL 提供程序并指定提供程序字符串 (@provstr) 的链接服务器查询会失败,并返回以下错误消息:

Msg 7416,级别 16
对远程服务器的访问遭拒绝,因为不存在登录映射。

即使正确配置了链接服务器和登录映射,也可能发生失败。

原因

数据库引擎中更严格的连接验证检查可能会拒绝某些使用 MSDASQL 提供程序的链接服务器配置的连接,即使较早的版本允许这些连接。

解决方法

若要在不回滚更新的情况下解决此问题,请使用以下方法之一:

  • 如果配置不需要提供程序字符串(@provstr),请从链接服务器定义中删除该字符串。
  • User ID 条目添加到提供程序字符串(@provstr)中。 例如,设置 User ID=<value>。 提供程序字符串也必须包含 UID

还可以通过向受影响的用户授予 sysadmin 权限来防止失败。 但是,不建议使用此方法。