升級 SNAC 應用程式之後,發生「憑證鏈結是由不受信任的授權單位發出」錯誤
SQL Server Native Client 11.0 (SNAC) 作為資料庫應用程式驅動程式的支援已於 2022 年 7 月 12 日結束。 使用 SNAC 11.0 的任何應用程式都必須更新為使用較新版本的驅動程式, (請參閱下載 ODBC Driver for SQL Server 和下載 Microsoft OLE DB Driver for SQL Server) 。 本文說明將 SNAC 11.0 應用程式升級為使用 Microsoft OLE DB Driver 19 for SQL Server 或 Microsoft ODBC Driver 18 時所發生的問題。x表示 SQL Server。
如果您最近將 SQL Server Native Client 11.0 (Provider=SQLNCLI11) 應用程式升級為使用 Microsoft OLE DB Driver 19 for SQL Server (Provider=MSOLEDBSQL19) ,您可能會收到類似下列訊息的錯誤訊息:
[Microsoft OLE DB Driver 19 for SQL Server]:客戶端無法建立連線
[Microsoft OLE DB Driver 19 for SQL Server]: SSL 提供者:憑證鏈結是由不受信任的授權單位所發行。
原因
如果下列兩個條件都成立,就會發生這些錯誤:
SQL Server 實例的 [強制加密] 設定設為 [否]。
用戶端 連接字串 未明確指定加密屬性的值,或未在 DSN 中明確設定或更新加密選項。
發生錯誤的原因是客戶端驅動程式的預設行為有所變更。 舊版客戶端驅動程序的設計目的是假設數據加密預設為 OFF 。 新的驅動程式會假設此設定預設為 ON 。 因為數據加密設定為 ON,所以驅動程式會嘗試驗證伺服器的憑證並失敗。
解決方案
解決方案 1:使用 Microsoft OLE DB Driver for SQL Server 18.x。 您可以從 Microsoft OLE DB Driver for SQL Server 的版本資訊下載驅動程式。
解決方案 2:如果應用程式 連接字串 屬性已針對 [加密/使用數據加密] 設定指定 [是] 或 [強制] 值,請將值變更為 [否] 或 [選擇性]。 例如, 針對 Data=Optional 使用加密。 如果 連接字串 未針對 [加密/使用數據加密] 指定任何值,請將 Data=Optional 的 Use Encryption 新增至 連接字串。 如需詳細資訊,請 參閱加密和憑證驗證。
解決方案3:將新
;TrustServerCertificate=true
增至 連接字串。 這會強制用戶端信任憑證而不進行驗證。-
注意事項
目前,MSOLEDBSQL19防止在沒有加密的情況下建立連結的伺服器,而且自我簽署憑證 (受信任的憑證) 不足。 如果需要連結的伺服器,請使用現有支援的 MSOLEDBSQL 版本。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應