通过OleDbConnection Class (System.Data.OleDb.dll)使用提供程序“sqloledb.1”的旧版软件仍能在Windows Server 2019(采用TLS1.2)上正常运行,而在Server 2016或2012 R2(采用TSL1.2)上则无法正常运行?
Windows Server 2016收到以下错误,这是预期的,因为它使用的是不支持TLS1.2的sqloledb。这是众所周知的,如here.所示
[DBNETLIB][ConnectionOpen (SECCreateCredentials()).]SSL Security error.
Windows Server 2019工作正常,我不知道为什么。它是在努力寻找sqloledb并默认使用支持TLS1. 2的新驱动程序(MSOLEDBSQL)吗?
所有服务器都安装了相同版本的Microsoft OLE DB Driver for SQL Server,即18.5。
尝试了不同版本的SQL Server,2017和2019。
更新
显示版本信息的sqloledb.dll属性
服务器2019
服务器2016
3条答案
按热度按时间j13ufse21#
sqloledb
是Windows的一部分,最近更新为支持TLS 1.2。请参阅KB4580390:在使用Microsoft数据访问组件(MDAC)中的数据访问接口连接到SQL Server时,添加对传输层安全性(TLS)1.1和1.2协议的支持。
因此,截至“Windows 10,版本1809,Windows服务器版本1809”(操作系统构建17763. 1554),这应该工作。
在运行Windows 10 20H2的本地测试
在服务器上强制协议加密的情况下:
捕获此XEvent:
已捕获此调试消息:
dbf7pr2w2#
SQL Server OLE DB提供者
| OLE DB提供者|项目名称|可用于|最低SQL Server配置|最大值TLS|已安装|状态(截至2022年第3季度)|
| - -|- -|- -|- -|- -|- -|- -|
|
SQLOLEDB
|“用于SQL Server的Microsoft OLE DB提供程序”|Windows 2000操作系统|SQL服务器7.0(70个)|TLS 1.0版|Windows(MDAC)|Deprecated||
SQLOLEDB
个(2021 update)|“用于SQL Server的Microsoft OLE DB提供程序”|Windows 10操作系统|SQL服务器7.0(70个)(TLS 1.2需要SQL Server 2008及更高版本)|TLS 1.2版|Windows(MDAC)|Deprecated||
SQLNCLI
|“SQL Server本机客户端”(“SNAC”)|SQL服务器2005| SQL服务器7.0(70个)|TLS 1.1注解1| 手动操作|Deprecated||
SQLNCLI10
|“SQL Server本机客户端10.0”|SQL服务器2008| SQL服务器2000(80个)|TLS 1.2版|手动操作|Deprecated||
SQLNCLI10
(2020 update)|“SQL Server本机客户端10.0”||SQL服务器2000(80个)(TLS 1.2需要SQL Server 2008及更高版本)| TLS 1.2版| Manually| Deprecated||
SQLNCLI11
|“SQL Server本机客户端11.0”|SQL服务器2012| SQL服务器2005(90个)|TLS 1.2版|手动操作|Deprecated||
SQLNCLI11
(2018 update)|“SQL Server本机客户端11.0”||SQL服务器2005(90个)(TLS 1.2需要SQL Server 2008及更高版本)| TLS 1.2版| Manually| Deprecated||
MSOLEDBSQL
|“用于SQL Server的Microsoft OLE DB驱动程序”|2017 Announcement|SQL Server 2012数据库管理系统(SQL Server 2016+ needed for TLS 1.3)|TLS 1.3版|手动操作|****||
MSOLEDBSQL19
|“适用于SQL Server的Microsoft OLE DB驱动程序19”|SQL服务器2019| SQL Server 2012数据库管理系统(TLS 1.3需要SQL Server 2016及更高版本)|TLS 1.3版|手动操作|****|注意1:即使TLS 1.1是在SQL Server 2005 * 之后 * 的2006年发布的,但当
SChannel
系统on both the Server and Client machines supports TLS 1.1时,SQL Server 2005的原始SQLNCLI
“免费”支持TLS 1.1。von4xj4u3#
就我在Internet上看到的,当使用ADO时,本机客户端比MSOLEDBSQL驱动程序快,因为OleDB是两者之间的一个不同层。