You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2019使用OPENROWSET时出现SQLNCLI相关报错如何解决

问题引发原因
  • 驱动版本兼容问题:你使用的旧版SQLNCLI(SQL Server Native Client)驱动已被微软废弃,SQL Server 2019默认不预装该驱动,且旧驱动不兼容SQL Server 2019默认开启的强制连接加密、新身份验证规则等特性,会触发认证失败报错。
  • 连接字符串属性缺失:SQL Server 2019要求连接字符串必须包含加密相关配置项,旧写法缺少Encrypt、TrustServerCertificate等必要属性,会抛出「无效连接字符串属性」错误。
  • 驱动名称不匹配:部分环境即使安装了新版Native Client,也需要指定准确的驱动名SQLNCLI11,使用模糊的SQLNCLI会触发驱动加载失败。
排查修复方案
  1. 优先替换为官方推荐的最新驱动
    微软当前官方维护的SQL Server OLE DB驱动为MSOLEDBSQL,完全兼容SQL Server 2019及以上版本,将原语句中的驱动名从SQLNCLI替换为MSOLEDBSQL即可解决大部分兼容问题。
  2. 补充连接字符串加密参数
    在连接字符串中补充加密相关配置,适配SQL Server 2019的默认安全规则,修改后的完整语句参考:
SELECT a.* FROM OPENROWSET('MSOLEDBSQL', 'Server=MyServer;Database=Tasks;User Id=sa;Password=myPassword;Encrypt=Optional;TrustServerCertificate=Yes;','SELECT * FROM Patients') As a

参数说明:

  • Encrypt=Optional:可根据服务器配置自动选择是否加密连接,生产环境如果有合法SSL证书可改为Encrypt=Yes强制加密
  • TrustServerCertificate=Yes:用于兼容自签名SSL证书的场景,如果证书是公共CA颁发可删除该配置
  1. 检查驱动安装与配置
    如果必须使用旧版SQLNCLI驱动,需先确认SQL Server 2019所在服务器已安装「SQL Server Native Client 11」,同时将驱动名改为SQLNCLI11,并补充上述加密参数。
  2. 验证分布式查询配置
    执行如下命令确认即席分布式查询功能已开启:
sp_configure 'show advanced options', 1;
RECONFIGURE;
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;

同时在SQL Server管理控制台的「服务器对象-链接服务器-访问接口」中,找到对应驱动的属性,确认「允许即席访问」选项已勾选。

内容的提问来源于stack exchange,提问作者Saqlain Mushtaq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 11:09:04