加密屬性更改
在 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 驅動程式)
登錄設定