标签: sqloledb

sqloledb 实际上在 Windows Server 2019 上使用 MSOLEDBSQL

通过OleDbConnection 类 (System.Data.OleDb.dll)使用提供程序“sqloledb.1”的旧版软件仍在采用 TLS1.2 的 Windows Server 2019 上运行。而在带有 TSL1.2 的 Server 2016 或 2012 R2 上却不是?

Windows Server 2016 出现以下错误,这是预期的,因为它使用不支持 TLS1.2 的 sqloledb。正如此处所见,这是众所周知的

[DBNETLIB][ConnectionOpen (SECCreateCredentials()).]SSL Security error.
Run Code Online (Sandbox Code Playgroud)

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

所有服务器都安装了相同版本的Microsoft OLE DB Driver for SQL Server,即 18.5。

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

更新

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

服务器2019

sqloledb 服务器 2019

服务器2016

在此输入图像描述

sql-server sqloledb

6
推荐指数
2
解决办法
1万
查看次数

OPENROWSET 因“无效的授权规范”而失败

我正在尝试OPENROWSET在 SQL Server 2008 SP1 中使用:

SELECT *
FROM OPENROWSET(
      'SQLOLEDB', 
      'Data Source=hydrogen;User ID=scratch;Password=scratch;',
      'select * from users')
Run Code Online (Sandbox Code Playgroud)
  • OLE DB 提供程序SQLOLEDB
  • 连接字符串Data Source=hydrogen;User ID=scratch;Password=scratch;
  • 命令文本select * from users

查询失败:

链接服务器“(空)”的 OLE DB 访问接口“SQLNCLI10”返回消息“授权规范无效”。

链接服务器“(空)”的 OLE DB 访问接口“SQLNCLI10”返回消息“连接字符串属性无效”。

消息 7399,级别 16,状态 1,第 1 行
链接服务器“(null)”的 OLE DB 提供程序“SQLNCLI10”报告了错误。身份验证失败。

消息 7303,级别 16,状态 1,第 1 行无法初始化链接服务器“(空)”的 OLE DB 访问接口“SQLNCLI10”的数据源对象。

注意:服务器和凭据当然是正确的。

但我没有使用 SQLNCLI10

令人困惑的是错误表明有人正在使用 OLE DB 提供程序SQLNCLI11 (SQL Server Native Client 11.0)

链接服务器“(空)”的 OLE …

sql-server openrowset sql-server-2008 sqloledb

3
推荐指数
1
解决办法
9395
查看次数