共用方式為


升級 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 版本。

另請參閱