使用MS OLE DB Driver19从SQL Server2019链接2008R2遇证书问题求助
解决方案
以下是针对你的SQL Server链接服务器连接问题的具体解决步骤:
1. 检查并配置登录映射
链接服务器创建成功但连接失败,首先要确认登录映射是否正确。执行以下语句配置远程登录映射(替换为实际的远程账号和密码):
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'PB01_ENC2', @useself=N'False', @locallogin=NULL, @rmtuser=N'远程SQL账号', @rmtpassword='远程账号密码'
2. 调整链接服务器的连接字符串参数
OLE DB Driver 19对参数格式和优先级有特定要求,尝试调整@provstr的参数顺序和取值,重建链接服务器:
EXEC master.dbo.sp_addlinkedserver @server = N'PB01_ENC2', @srvproduct=N'SQL Server', @provider=N'MSOLEDBSQL19', @datasrc=N'PB01', @provstr=N'Encrypt=No;TrustServerCertificate=Yes'
同时确认已安装最新版本的Microsoft OLE DB Driver 19 for SQL Server,旧版本可能存在兼容性bug。
3. 修改驱动默认加密的注册表配置
OLE DB Driver 19默认可能强制启用加密,需通过注册表覆盖默认行为:
- 打开注册表编辑器,定位到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\MSOLEDBSQL19 - 新建两个DWORD值:
Encrypt:设置为0(禁用加密)TrustServerCertificate:设置为1(信任服务器证书)
- 重启SQL Server服务使配置生效。
4. 替换目标服务器的过期证书
即使目标服务器“强制加密”设为NO,过期证书仍可能干扰连接。临时替换为自签名证书:
- 在SQL Server 2008 R2服务器上打开SQL Server配置管理器
- 导航到
SQL Server网络配置 -> 你的实例协议 -> 属性 -> 证书 - 删除过期证书,点击「新建」生成自签名证书
- 重启SQL Server服务后重新尝试连接。
5. 切换为ODBC驱动替代OLE DB驱动
若OLE DB Driver 19兼容性问题无法解决,改用ODBC Driver 17:
- 在SQL Server 2019服务器上创建ODBC数据源,配置时勾选「Trust server certificate」并设置「Encrypt connection」为否
- 执行以下语句创建链接服务器:
EXEC master.dbo.sp_addlinkedserver @server = N'PB01_ENC2', @srvproduct=N'SQL Server', @provider=N'MSDASQL', @datasrc=N'你创建的ODBC数据源名称'
内容的提问来源于stack exchange,提问作者Dorian
相关产品推荐
相关产品推荐

