链接sqlserver数据库提示:证书链是由不受信任的颁发机构颁发的错误  解决方案 3:添加到 TrustServerCertificate=true 连接字符串。 这将强制客户端在不验证的情况下信任证书。

原因

如果满足以下两个条件,则会发生这些错误:

  • SQL Server 实例的“强制加密”设置为“否”。

  • 客户端连接字符串未显式指定加密属性的值,或者未在 DSN 中显式设置或更新加密选项。

发生此错误的原因是客户端驱动程序的默认行为发生了更改。 旧版客户端驱动程序旨在假定默认情况下数据加密为 OFF 。 新驱动程序假定此设置默认为 ON 。 由于数据加密设置为 ON,因此驱动程序会尝试验证服务器的证书,但失败。

解决方案

  • 解决方案 1:使用 Microsoft OLE DB Driver for SQL Server 18.x。 可以从Microsoft OLE DB Driver for SQL Server的发行说明下载驱动程序。

  • 解决方案 2:如果应用程序连接字符串属性已为“加密/使用数据加密”设置指定值为“是”或“必需”,请将值更改为“否”或“可选”。 例如, 对数据使用加密=可选。 如果连接字符串未为“加密/使用数据加密”指定任何值,请将“使用数据加密=可选”添加到连接字符串。 有关详细信息,请参阅 加密和证书验证

  • 解决方案 3:添加到;TrustServerCertificate=true连接字符串。 这将强制客户端在不验证的情况下信任证书。

  •  备注

    目前,MSOLEDBSQL19阻止在没有加密的情况下创建链接服务器,并且 (自签名证书) 不足的情况下创建受信任的证书。 如果需要链接服务器,请使用 MSOLEDBSQL 的现有受支持版本。

已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的。) (.Net SqlClient Data Provider)
 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐