共用方式為


升級 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 for 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 加密= 選擇性] 新增至 連接字串。 如需詳細資訊,請參閱加密和憑證驗證

  • 解決方案3:新增;TrustServerCertificate=true至 連接字串。 這會強制用戶端信任憑證,而不需驗證。

  • 注意

    目前,MSOLEDBSQL19 會防止建立沒有加密和受信任憑證的連結伺服器( 自我簽署憑證不足)。 如果需要連結的伺服器,請使用現有的 MSOLEDBSQL 支援版本。

另請參閱