共用方式為


TLS 1.3 支援

適用於: SQL Server 2022 (16.x) 及後版本 Azure SQL Database AzureSQL Managed InstanceMicrosoft Fabric 中的 SQL 資料庫

SQL Server(自 SQL Server 2022 (16.x)起)、Azure SQL 資料庫及 Azure SQL 管理實例在使用 Tabular Data Stream (TDS) 8.0 時,支援傳輸層安全(TLS)1.3。

重要

儘管 TLS 1.3 支援 TDS 連線,但仍需要 TLS 1.2 才能啟動 SQL Server 附屬服務。 請勿停用電腦上的 TLS 1.2。

SQL Server 2019 (15.x) 和更早版本不支援 TLS 1.3。

TLS 1.2 與 TLS 1.3 之間的差異

TLS 1.3 在交握階段期間將往返來回次數從兩次減少到一次,使其比 TLS 1.2 更快且更安全。 包含伺服器憑證的伺服器 hello 封包已加密,且一次往返時間 (1-RTT) 繼續已停止,並根據用戶端金鑰共用以 0-RTT 繼續來取代。 TLS 1.3 的新增安全性來自停止特定的加密和演算法。

以下是 TLS 1.3 中已移除的演算法和加密清單:

  • RC4 資料流加密
  • RSA 金鑰交換
  • SHA-1 雜湊函數
  • CBC (區塊) 模式加密
  • MD5 演算法
  • 各種非短暫 Diffie-Hellman 團體
  • EXPORT-strength 加密
  • DES
  • 3DES

驅動程式支援

檢閱 驅動程式功能支援矩陣圖 ,以判斷哪些驅動程式目前支援TLS 1.3。

作業系統支援

目前支援下列作業系統支援 TLS 1.3:

SQL Server 2025 支援

SQL Server 2025(17.x)引入以下 TLS 1.3 功能的支援:

設定限制

當作業系統上只有啟用 TLS 1.3 版本時,SQL Server 2025 設定會失敗。 安裝過程中需要確保 TLS 1.2 可用。 設定完成後,若需要,可以停用 TLS 1.2。

設定時的錯誤訊息為: A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - No process is on the other end of the pipe.)

憑證需求

使用 TDS 8.0 搭配 SQL Server 2025 時,必須符合特定憑證要求:

  • 受信任憑證:憑證必須由受信任的憑證授權機構(CA)發行。 自簽憑證在預設情況下不再被 Microsoft OLE DB Driver for SQL Server 版本 19 接受。
  • 憑證驗證TrustServerCertificate 必須設定為 FalseNo。 Microsoft OLE DB 19 版 SQL Server 驅動程式驗證憑證的信任鏈,且憑證驗證無法被繞過。
  • 主體替代名稱(SAN)要求:憑證必須同時包含完全合格的網域名稱(FQDN)及 Netbios 名稱。 SQL Server Management Studio(SSMS)在連線時常使用 NetBIOS 名稱,缺少條目會導致驗證錯誤。
  • 規劃 SAN 條目:在憑證發行時包含所有可能的用戶端連線名稱(FQDN、Netbios 名稱、服務別名)。 之後新增名稱需要建立新的憑證並重新啟動 SQL Server 實例。

欲了解更多憑證驗證的資訊,請參閱 「加密與憑證驗證 - SQL Server 的 OLE DB 驅動程式」。

SQL Server 2025 中的預設安全設定

SQL Server 2025 為多項功能引入預設安全配置,現已使用 TDS 8.0 並預設啟用加密:

  • SQL Server 代理程式:使用 Microsoft OLE DB 驅動程式支援 SQL Server 19 版本,Encrypt=Mandatory並需有效的伺服器憑證。TrustServerCertificate=False 當唯一啟用的 TLS 版本是 TLS 1.3,你必須設定 Encrypt=Strict (強制嚴格加密)。

  • Always On 可用性群組與 FCI:預設使用 SQL Server 版本 18 Encrypt=Mandatory 的 ODBC 驅動程式。 與其他功能不同,Always On 可用性群組與 FCI 允許 TrustServerCertificate=True 自簽情境。

  • 連結伺服器:預設使用 Microsoft OLE DB 驅動程式,適用於 SQL Server 19 Encrypt=Mandatory 版。 當針對另一個 SQL Server 實例時,必須在連線字串中指定加密參數。

  • 日誌運送:使用 Microsoft OLE DB 驅動程式用於 SQL Server 19 版, Encrypt=Mandatory 並需有效伺服器憑證。 當從不支援最新安全配置的較低版本進行原地升級時,如果加密設定沒有明確被更安全選項覆蓋,日誌運送會用 TrustServerCertificate=True 來實現向下相容。 若要在升級後強制執行 TLS 1.3 和 TDS 8.0,請在記錄傳送儲存程序中刪除並重新建立具有更新參數的拓撲。

  • 複寫:(交易型、快照、合併)使用 Microsoft OLE DB 驅動程式,支援 SQL Server 版本 19Encrypt=Mandatory,並需有效憑證。TrustServerCertificate=False

  • 資料庫郵件:預設設定為 Encrypt=OptionalTrustServerCertificate=True。 當 TLS 1.3 強制執行時,這些值會變為 Encrypt=StrictTrustServerCertificate=False。 Azure SQL 受管實例預設使用 TLS 1.3 協定。

  • PolyBase:使用 SQL Server 18 版的 ODBC 驅動程式,搭配 Encrypt=YesMandatory)。 PolyBase 允許 TrustServerCertificate=True 自簽名場景。

  • SQL VSS Writer:當連接到 SQL Encryption=StrictServer 2025 實例時,SQL VSS Writer 將使用 TLS 1.3 和 TDS 8.0 來處理該連線的非虛擬裝置介面(VDI)部分。

元件特定需求

  • 搭載 TLS 1.3 的 SQL Server 代理程式:當 TLS 1.3 是唯一啟用的版本時,必須使用強制嚴格加密(TDS 8.0)。 較低的加密設定(MandatoryOptional)會導致連線失敗。

  • SQL Server 代理 T-SQL 工作:連接至本地實例的 SQL Server 代理 T-SQL 工作繼承了 SQL Server 代理的加密設定。

  • PowerShell 模組:SQLPS.exe 與 SQLPS PowerShell 模組目前不支援 TDS 8.0。

  • Always On 可用性群組與 FCI:若要在 TDS 8.0 中設定嚴格加密,請使用 CLUSTER_CONNECTION_OPTIONS 子句與 Encrypt=Strict 和故障移轉來套用設定。