Windows 数据源管理器中的 ODBC 18 与 ODBC 17

问题描述 投票:0回答:4

我有一个 microsoft access 前端连接到后端的 SQL 数据库。 过去 4 年我一直在使用此设置,最近遇到了新同事无法使用该工具的问题,因为我们公司从内部系统中淘汰了 ODBC 驱动程序 17。 我不明白 ODBC 驱动程序 17 和 18 之间有什么区别会导致版本 18 失败。

驱动程序使用方法: 在 ODBC 数据源管理器中,创建了指向我们数据库的手动链接。 同事为链接“Our_link”输入特定名称,并在驱动程序名称中注明“ODBC Driver 17 for SQL Server”

然后在我们的访问前端内部,我们链接到该驱动程序,如下所示:

Const ConStrSQL As String = "DRIVER={ODBC Driver 17 for SQLServer};Server=OurServer;Database=Our_DB;UID=User();Trusted_Connection=Yes;"

我遇到的问题是,当我尝试使用 ODBC 驱动程序 18 在数据源管理器中创建 ODBC 连接时,我收到一条错误消息:

 [![`"Connection Failed: The certificate chain was issued by an authority that is not trusted"`]

不确定这些额外信息是否有帮助,但我也看到以下内容:

SQLState: 08001

SQL Server Error -2146893019

Client unable to establish connection

我是否需要联系我们的数据库管理组并询问他们是否在服务器端安装了驱动程序 18?

ODBC Manager Authority Not Trusted

odbc
4个回答
1
投票

更简单的解决方案是将

;TrustServerCertificate=Yes
添加到连接字符串


0
投票

我猜测这与版本 18 的加密行为的更改有关,特别是默认情况下需要加密。建议的修复方法是在您的服务器上安装受信任的证书[1],但如果您不想与数据库管理员打交道,您仍然可以通过在连接中为 Encrypt 指定否(或可选)来进行连接字符串。[2]

服务器设置为强制加密有可能不起作用,但听起来更改全部在客户端。理想情况下,您希望加密始终有效,因此,如果您使用自签名证书,请将 SQL Server 中的公钥添加到客户端计算机上的受信任证书中。

[1]:https://techcommunity.microsoft.com/t5/sql-server-blog/odbc-driver-18-0-for-sql-server-released/ba-p/3169228) [2]: https://learn.microsoft.com/en-us/sql/connect/odbc/dsn-connection-string-attribute?view=sql-server-ver16#encrypt


0
投票

在我的一位数据库管理员的帮助下找到的“修复”如下:

在数据源管理器中,有一个选项可以选择“信任服务器证书”

选择该选项后,我就能够完成其余的 DSM 连接。 需要注意的一件事是,我在尝试更改 DEFAULT DATABASE 选项时收到了上一个错误。 之后,“信任服务器证书”的复选框出现在屏幕上..所以我不得不跳过选择默认数据库,选中该框,然后返回并选择我的默认数据库以使一切正常工作。

我尚未在 Access 中完成所有测试以确保一切正常 100%,但我的快速测试非常有希望。

Change Default Database Trust Server Connection


0
投票

我之前用的是17号驱动。我刚刚将 (17) 更改为 18 并添加 Encrypt=yes;TrustServerCertificate=Yes;到连接字符串,它工作得很好。希望这对某人有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.