适用于 SQL Server 的 Microsoft OLE DB 提供程序是否支持 TLS 1.2

2024-02-28

我们的客户端最近从 TLS 1.0 升级到 TLS 1.2,此后我们的软件无法与 SQL Server 连接。它使用 OLE DB 提供程序连接到 SQL 服务器。 以下是从 SQL 服务器返回的错误 -

[DBNETLIB][ConnectionOpen SECDoClientHandshake()]SSL 安全错误 SQL状态:08001 SQL 错误号:18

找不到与 Microsoft OLE DB Provider for SQL Server 是否支持 TLS 1.2 相关的任何有用信息。

我发现的链接之一似乎表明它不受支持。https://forums.iis.net/t/1233674.aspx?connecing+SQL+server+DB+issue+after+installingTLS1+2+in+SQL+srver+with+classic+asp+application+ https://forums.iis.net/t/1233674.aspx?connecing+SQL+server+DB+issue+after+installingTLS1+2+in+SQL+srver+with+classic+asp+application+

因此,想检查一下 stackoverflow,以防有人有任何相关信息。


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 或更高版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

适用于 SQL Server 的 Microsoft OLE DB 提供程序是否支持 TLS 1.2 的相关文章

  • 如何在 T-SQL 中实现 ZIP JOIN?

    假设我有表 Foo Id Color 1 Red 2 Green 3 Blue 4 NULL 和表 Bar Value 1 2 5 我想使用简单的语句创建表 Result 来获取 Id Color Value 1 Red 1 2 Green
  • 捕获 SQL Server 时态表删除上的 SysEndTime

    是否可以使用 OUTPUT 关键字捕获 SysEndTime 时间时间戳 例如 DECLARE MyTableVar TABLE sysendtime datetime2 DELETE FROM dbo someTable OUTPUT D
  • 在ASP CLASSIC中使用SQL参数,对象定义不正确错误

    我试图使用参数保护我的 INSERT 语句免受 SQL 注入 但由于某种原因我收到错误 Parameter object is improperly defined Inconsistent or incomplete informatio
  • 在 SQLCMD 模式下格式化输出?

    有没有办法可以指定输出文件格式SQLCMD模式这样我就可以使用它读回来BULK INSERT 我想做这样的事情 CONNECT SERVER1 OUT E test SELECT TOP 100 ID NAME FROM DB1 dbo T
  • TSQL 返回 NO 或 YES,而不是 TRUE 或 FALSE

    如果某些列返回 FALSE 如何显示不同的值 例如 COLUMN BASIC 返回 FALSE 但我需要向用户显示 YES 或 NO 情况为 FALSE 返回 NO 如果是 varchar 或 bit 则处理 NULL case when
  • 将单个列连接到逗号分隔的列表中[重复]

    这个问题在这里已经有答案了 我已经看到了人们将单个列滚动到逗号分隔列表中的多个示例 但我需要更多 这是我需要的数据和结果的示例 DECLARE SalesPerson table SalesPersonID int SalesPersonN
  • 查询所有表数据并进行索引压缩

    是否有人碰巧拥有一个通用 SQL 语句 可以列出数据库中每个分区的所有表和索引及其当前的压缩设置 Thanks 编辑 这是我尝试查询表所得到的 但我不确定连接是否正确 我得到了重复项 这似乎是由于索引的存在引起的 SELECT t name
  • 表名搜索

    我使用以下命令在特定数据库的存储过程中搜索字符串 USE DBname SELECT Name FROM sys procedures WHERE OBJECT DEFINITION OBJECT ID LIKE xxx 修改上面的内容是否
  • 如何授予所有表的 REFERENCES 权限

    我必须授予REFERENCES登录权限说sql login 我可以给予资助REFERENCES对单个表的权限 例如 GRANT REFERENCES ON Mytable TO sql login 有什么办法可以授予REFERENCES允许
  • 如何在 SQL Server 中的特定字符后分割字符串并将该值更新到特定列

    我有包含数据的表格1 1 to 1 20在一列中 我想要值 1 到 20 即 前斜杠 之后的值更新到 SQL Server 中同一表中的其他列 Example 专栏有价值1 1 1 2 1 3 1 20新列值1 2 3 20 也就是说 我要
  • 如何使用 DateTime 执行 SQL NOT NULL?

    一个人如何处理DateTime with a NOT NULL 我想做这样的事情 SELECT FROM someTable WHERE thisDateTime IS NOT NULL But how 嗯 它有效吗 我刚刚测试过 Obje
  • SQL Server 用分隔符分割字符串

    我有一个输入字符串 100 2 3 101 2 1 103 2 3 我想解析它并将其添加到具有 3 列的表中 因此它应该是 f x col1 col2 col3 100 2 3 类似的其他数据以逗号分隔作为记录和 作为列 Thanks ni
  • 如何在SSRS 2012中显示基于总金额的前10名

    我只需要显示前 10 名Class基于Total SUM Premium 柱子 我转到类代码属性组 gt 过滤器并按 SUM Net Written Premium 设置前 10 名 但它不起作用 我只需要显示前 10 名 而且总金额也应该
  • 避免连接失败时出现空指针

    我有我的域类 带有命名查询 class Atendimento implements Serializable Funcionario funcionario static mapping funcionario column FUNCOD
  • sql server 按组排名

    问题看似简单 但我却无法理解 这是针对 sql 服务器的 what I have in a table What I need as a output cksum id cksum id 2162514679 204 2162514679
  • 如何在存储过程中实现 sql 搜索功能 (Sql Server 2008)

    我需要编写一个存储过程 该过程将使用 sql server 2008 根据可选参数搜索表 将会有两种模式 基本搜索模式 我们只传递一些文本 高级搜索模式 使用可选参数而不使用 SearchText 为了进行测试 我使用 AdventureW
  • SQL Server 列名区分大小写

    我使用的数据库具有 French CI AS 排序规则 CI 应该代表不区分大小写 但无论如何都是区分大小写的 我试图理解为什么 我断言这一点的原因是 使用 GIVEN 案例设置进行批量插入失败 但使用另一个 Given 案例设置则成功 例
  • C#的数组列表可以用来填充SSIS对象变量吗?

    我已在 C 脚本中填充了一个列表 并将其值分配给 SSIS 对象变量 然后 我使用该对象变量通过循环遍历 For every do 枚举器来执行一些 SQL 查询 我尝试通过 Foreach ado 枚举器执行此操作 但出现错误 X 变量不
  • 临时表是线程安全的吗?

    我正在使用 SQL Server 2000 它的许多存储过程广泛使用临时表 数据库的流量很大 我担心创建和删除临时表的线程安全性 假设我有一个存储过程 它创建了一些临时表 它甚至可以将临时表连接到其他临时表等 并且还可以说两个用户同时执行存
  • Visual Studio 2010 中的数据库设计器

    我需要创建一个全新的 Sql Server 2008 数据库 并希望使用 Visual Studio 2010 Ultimate 中的数据库项目 我已经创建了该项目并在下面添加了一个表格dbo架构 桌子 sql仅以纯文本形式显示 但带有颜色

随机推荐

  • SF:从 UTM 到纬度/经度

    我有一组 UTM 度量点 我想使用 sf 环境将其转换为纬度和经度小数点 我的数据集如下所示 df lt data frame longitude c 4585434 4588904 4586694 latitude c 430060 8
  • 如何从 github 拉取我的项目?

    我在github上有一个项目 我之前一直在做 但是 我清理了我的计算机 我想知道我应该在我的用户名下调用哪个 git 命令来再次签出我的项目 以便我可以将最新更改推送到我的帐户下的 github Git clone 是您正在寻找的命令 gi
  • Swift:仅返回类型不同的方法重载

    我不断看到 Swift 类中定义了两种仅返回类型不同的方法 我不习惯使用允许这样做的语言 Java C 等 因此我寻找描述其在 Swift 中如何工作的文档 我在任何地方都没有发现任何东西 我本以为 Swift 书中会有完整的章节来介绍它
  • WPF - 当 ItemsSource 更改时重置 ListBox 滚动位置

    我当前有一个 ListBox 其 ItemsSource 集合绑定到我的视图模型上的 IEnumerable 类型的属性 当该 preoprty 的引用更改时 列表框会按预期更新 但是我有一个问题 如果我有大量项目集合并滚动到列表框的底部
  • 禁用 Laravel 中的速率限制器?

    有没有办法禁用 Laravel 中每个 单个路由的速率限制 我正在尝试测试接收大量请求的端点 但 Laravel 会随机开始响应 status 429 responseText Too Many Attempts 数百个请求使得测试变得非常
  • KeyVault 为何比标准存储更安全?

    我试图了解 Azure Key Vault 或同样的 AWS KMS 提供的安全优势 我了解密钥管理的好处 即能够轻松轮换 更改 审核密钥访问 但让我有点困惑的是它如何更安全 据我了解 如果我开发一个 Web 应用程序并想要保护我的连接字符
  • 使用 cakephp 3 上传文件并将其存储在 blob 中

    我知道在数据库中存储文件有点脏 但我需要上传文件并将其存储到数据库 BLOB 中 并且我没有找到任何有关它的文档 也没有找到任何线索 所以有关的任何帮助我们将不胜感激 提前致谢 大卫 您不需要做任何特别的事情 只需将要存储在适当的实体属性
  • 在 $_POST 值中不使用引号、单引号和双引号[重复]

    这个问题在这里已经有答案了 可能的重复 我应该对单引号使用 php 引号转义还是在数组中使用双引号 https stackoverflow com questions 2317959 should i use php quote escap
  • 要上传到 Google 云端硬盘的 URL

    有没有可以用来直接上传到 Google 云端硬盘的 URL 例如 我的服务器上有一个文件http example com file doc我想将其上传到 Google Drive 如下所示 http google com upload ht
  • 检查是否有元素包含特定的 css 样式

    我想知道元素包含任何 css 样式的检查过程 我有以下 html 代码 ul li text 1 li li text 2 li li text 3 li ul 我想找出样式左侧为 0px 的 li 然后想对该 li 应用更多样式 Than
  • Subsonic - 如何使用 SQL 架构/所有者名称作为命名空间的一部分?

    我刚刚开始使用 Subsonic 2 2 到目前为止印象深刻 认为它会节省我一些认真的编码时间 在我开始全职使用它之前 尽管有些事情困扰着我 我想解决一下 在我当前的数据库 SQL2008 数据库 中 我已按架构 所有者名称将表 视图 sp
  • 是否可以通过插件在 Firefox 上设置配置设置

    我正在寻找一种从网络打印而不提示打印对话框的方法 我刚刚提出了问题 https stackoverflow com questions 5809102 how to print from web without prompting a pr
  • 如何进行函数复合?

    在相当不耐烦地等待 Java 8 发布并阅读精彩文章之后Brian Goetz 的 Lambda 状态 文章 http cr openjdk java net briangoetz lambda lambda state final htm
  • 操作必须使用可更新查询/SQL - VBA

    我正在尝试创建一个非常动态的宏 它将根据用户的选择更新数据库中的不同表 当然 每个表都有不同的标题和信息 我在更新时遇到问题 当用户将新记录添加到旧表时 这是代码的一部分 问题是当它到达 update 时 我收到 操作必须使用可更新查询 错
  • Hibernate:为什么 FetchType.LAZY 注释的集合属性急切加载?

    我尝试实现简单的one to many协会 使用调试模式检查项目对象后 我发现List
  • scrapy中如何根据url过滤重复请求

    我正在使用 scrapy 和 CrawlSpider 为网站编写一个爬虫 Scrapy 提供了一个内置的重复请求过滤器 可以根据 url 过滤重复请求 另外 我可以使用过滤请求rules爬行蜘蛛成员 我想做的是过滤请求 例如 http ww
  • matplotlib:子图背景(轴面+标签)颜色[或图/轴坐标系]

    我有一个包含 3x2 子图的图形 我想在中间一对子图上设置背景颜色 以便更清楚哪些轴标签属于哪个子图 Setting facecolor构建子图时 仅更改轴定义的区域的颜色 刻度线和轴标签仍然绘制在figure patch 假设没有简单的方
  • ionic 使用获取上一页名称

    我用的是离子2 我需要获取上一页的名称 这是我的代码 ViewChild Nav nav Nav constructor this nav app viewDidEnter subscribe view gt console log Cur
  • 在 Openlayers 中单击地图外部时如何激活功能 + 弹出窗口?

    我正在重新解析已加载到地图上的 KML 类似于此处的示例 http openlayers org dev examples sundials html http openlayers org dev examples sundials ht
  • 适用于 SQL Server 的 Microsoft OLE DB 提供程序是否支持 TLS 1.2

    我们的客户端最近从 TLS 1 0 升级到 TLS 1 2 此后我们的软件无法与 SQL Server 连接 它使用 OLE DB 提供程序连接到 SQL 服务器 以下是从 SQL 服务器返回的错误 DBNETLIB ConnectionO