Windows 附带的 SQLOLEDB 提供程序和 SQL Server ODBC 驱动程序是仅为了向后兼容而提供的旧组件。自 SQL 2005 以来,这些已被弃用。
根据MSSQL Tiger 团队的这篇博文 https://blogs.msdn.microsoft.com/sqlreleaseservices/tls-1-2-support-for-sql-server-2008-2008-r2-2012-and-2014/:
SQLOLEDB 将不会获得对 TLS 1.2 的支持。你需要切换
将您的驱动程序更改为中列出的受支持的驱动程序之一https://support.microsoft.com/en-us/kb/3135244 https://support.microsoft.com/en-us/kb/3135244
您应该能够安装 SQL Server Native Client 2012 并使用该 OLE DB 提供程序,只需更改连接字符串(更改Provider=SQLOLEDB
to Provider=SQLNCLI11
)。当然,应该测试一次,以免出现意外。例如,我记得有人在使用服务器 API 游标时遇到了 SQL Server Native Client 提供程序和 ADO classic 的行为差异,尽管常用的 Firehose 游标没有问题。
EDIT
新的 OLE DB 驱动程序,MSOLEDBSQL https://www.microsoft.com/en-us/download/details.aspx?id=56730,已发布。此新驱动程序支持最新的 TLS 1.2 标准,并向后兼容 SQL Server Native Client 11 (SQLNCLI11)。看Microsoft SQLNCLi 团队博客公告 https://blogs.msdn.microsoft.com/sqlnativeclient/2018/03/30/released-microsoft-ole-db-driver-for-sql-server/。将连接字符串更改为Provider=MSOLEDBSQL
安装后。
EDIT #2
时间继续前进。 SQL Server Native Client OLE DB 驱动程序现已弃用,取而代之的是 MSOLEDBSQL。 2012 年 SNAC 最终版本的支持将于 2012 年 7 月 12 日结束。
此外,正如 David 在回答中指出的那样,微软最近在 Windows 10 Build 17763.1554 中添加了对 TLS 1.2 MDAC 组件的支持:
添加对传输层安全性 (TLS) 1.1 和 1.2 的支持
使用以下数据提供程序连接到 SQL Server 时的协议
Microsoft 数据访问组件 (MDAC)
不过,没有添加任何增强功能(例如对 SQL 2000 之后的数据类型的支持)。
总之,较新的 SQL Server 客户端驱动程序提供了对特定驱动程序和版本的更多控制,而无需直接依赖操作系统补丁级别。 MSOLEDBSQL 和 SQL Server 的 ODBC Driver n 等现代驱动程序不断得到改进,以支持最新的 SQL Server 功能和安全标准。
EDIT#3
SQLOLEDB 和 SQL Server ODBC 驱动程序(MDAC 的一部分,随 Windows 一起提供和提供服务)支持 TLS 1.22020 年 10 月 20 日构建,版本 17763.1554 https://support.microsoft.com/en-us/topic/october-20-2020-kb4580390-os-build-17763-1554-preview-ac4799c9-838f-8665-a968-0f19b6cb1049。这适用于 Windows 10 和 Windows Server 2019 或更高版本。