首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Windows 2019上实际使用MSOLEDBSQL的sqloledb

在Windows 2019上实际使用MSOLEDBSQL的sqloledb
EN

Stack Overflow用户
提问于 2021-06-11 21:06:10
回答 2查看 5.6K关注 0票数 4

通过OleDbConnection类(System.Data.OleDb.dll)使用提供者"sqloledb.1“的遗留软件仍在Windows 2019上使用TLS1.2。而在服务器2016或2012年使用TSL1.2的R2上,它不是吗?

Windows 2016将获得以下错误,因为它使用的sqloledb不支持TLS1.2。这是众所周知的这里。

代码语言:javascript
运行
复制
[DBNETLIB][ConnectionOpen (SECCreateCredentials()).]SSL Security error.

Windows 2019工作,我不知道原因。是否很难找到sqloledb并默认使用支持TLS1.2的新驱动程序(MSOLEDBSQL)?

所有服务器都安装了相同版本的Microsoft SQL Server驱动程序 ( 18.5 )。

尝试了不同版本的SQL server,2017和2019。

更新

显示版本信息的sqloledb.dll属性

服务器2019年

服务器2016

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-11 22:11:23

sqloledb是Windows的一部分,最近对它进行了更新,以支持TLS 1.2。请参阅KB4580390

在使用Microsoft数据访问组件(MDAC)中的数据提供程序连接到Server时,添加对传输层安全性(TLS) 1.1和1.2协议的支持。

因此,对于“Windows10,Version1809,WindowsServerVersion1809”(OS Build 17763.1554)来说,这应该是可行的。

在Windows 1020H2上进行本地测试

代码语言:javascript
运行
复制
static void Main(string[] args)
{

    using (var con = new OleDbConnection("Provider=sqloledb;data source=localhost;trusted_connection=yes;Network Library=DBMSSOCN"))
    {
        con.Open();
        Console.WriteLine("Hello");
        Console.ReadKey();
    }
}

在服务器上强制进行协议加密:

并捕获这个XEvent:

代码语言:javascript
运行
复制
CREATE EVENT SESSION [tls] ON SERVER 
ADD EVENT sqlsni.sni_trace(
    WHERE ([sqlserver].[like_i_sql_unicode_string]([text],N'%Handshake%')))

捕获此调试消息:

代码语言:javascript
运行
复制
text    SNISecurity Handshake Handshake succeeded. Protocol: TLS1.2 (1024), Cipher: AES 256 (26128), Cipher Strength: 256, Hash: SHA 384 (32781), Hash Strength: 0, PeerAddr: 127.0.0.1 
票数 4
EN

Stack Overflow用户

发布于 2022-06-08 05:34:26

据我在互联网上所能看到的,在使用ADO时,本机客户端比MSOLEDBSQL驱动程序更快,因为OleDB在两者之间是一个不同的层。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67943468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档