加密属性更改
在 Microsoft OLE DB Driver 19 for SQL Server 中,属性/连接字符串关键字和证书验证行为发生了变化 Encrypt
。
首先,driver 属性 SSPROP_INIT_ENCRYPT
从 a VT_BOOL
更改为 a VT_BSTR
。 此属性no
/yes
/true
/false
/Optional
/Mandatory
/Strict
的有效值为 。 provider 连接字符串关键字Encrypt
的有效值从no
/yes
no
/yes
/true
/false
/Optional
/Mandatory
/Strict
更改为 。 同样,对于 IDataInitialize
connection string 关键字 Use Encryption for Data
,有效值将从 更改为 true
/false
no
/yes
/true
/false
/Optional
/Mandatory
/Strict
。 该值Optional
与旧no
/false
值同义,值Mandatory
与旧yes
/true
值同义。
Strict
是 OLE DB Driver for SQL Server 版本 19.0.0 中添加的新值,除了与服务器的所有其他通信外,它还 PRELOGIN
加密数据包。
Strict
仅在支持 TDS 8.0 的 SQL Server 终端节点上支持加密,否则驱动程序无法连接。 适用于 SQL Server 的 OLE DB 驱动程序 19 继续支持所有旧关键字值,以实现向后兼容性。
其次,默认值从 更改为 no
/false
Mandatory
。 此更改意味着默认情况下会加密连接。 以前,如果服务器端属性设置为 Force Encryption
yes
,则驱动程序将加密连接(如果由用户显式设置和/或 SQL Server 强制要求)。 要使用旧的默认行为,请包含在 Encrypt=Optional;
提供程序连接字符串或 Use Encryption for Data=Optional;
连接字符串中 IDataInitialize
。
第三, Trust Server Certificate
选项与 Encrypt
/Use Encryption for Data
选项断开连接。 在以前的版本中,当 在 Encrypt
客户端 上时false
,Trust Server Certificate
即使服务器需要加密(服务器端Force Encryption
设置),该设置也始终被忽略。 从版本 19 开始,如果客户端或服务器在连接上协商加密, Trust Server Certificate
则会评估设置以确定客户端是否验证证书。 此行为更改会导致使用默认设置的版本 19 客户端在服务器强制加密并使用不受信任的证书(不安全的服务器配置)时无法连接。 客户端必须更改其 Trust Server Certificate
注册表设置和连接选项才能连接到以这种方式配置的服务器。 有关详细信息,请参阅 注册表设置 和 加密和证书验证
驱动程序名称更改
新的 Microsoft OLE DB Driver 19 for SQL Server 支持与较旧的 Microsoft OLE DB Driver for SQL Server 并排安装。 为了能够区分驱动程序,名称已更改为包含主要版本号。 要在应用程序中使用新驱动程序,用户必须指定新驱动程序名称。 新的驱动程序名称以及相应的 CLSID 在必须包含在项目中的更新 msoledbsql.h
标头中指定。 通过接口的连接 IDBInitialize
不需要进一步更改,因为 MSOLEDBSQL_CLSID
指定了 OLE DB 驱动程序 19 for SQL Server 的 CLSID。 通过接口 IDataInitialize
的连接必须将关键字的值 Provider
替换为 MSOLEDBSQL19
才能使用 Microsoft OLE DB Driver 19 for SQL Server。 在图形用户界面(如 SSMS 中的数据链接属性或链接服务器设置)中,必须从已安装的提供程序列表中选择“Microsoft OLE DB Driver 19 for SQL Server”。
另请参阅
适用于 SQL Server 的 OLE DB 驱动程序
将连接字符串关键字与 OLE DB 驱动程序一起使用
加密和证书验证
通用数据链接 (UDL) 配置
“SQL Server 登录”对话框 (OLE DB)
初始化和授权属性(OLE DB 驱动程序)
注册表设置