適用於:SQL Server 2022 (16.x)
嚴格連線加密會強制執行良好的安全性做法,並讓 SQL Server 流量可由標準網路裝置管理。
在本文中,瞭解如何使用嚴格連線類型連線到 SQL Server 2022 (16.x) 和更新版本。
必要條件
- SQL Server 2022 (16.x) 或更新版本
- ODBC 或 OLE DB Driver for SQL Server
- ODBC Driver for SQL Server 18.1.2.1 版或更新版本
- OLE DB Driver for SQL Server 19.2.0 版或更新版本
- 建立 TLS 憑證並將其安裝至 SQL Server。 如需詳細資訊,請參閱啟用資料庫引擎的加密連線
使用 .NET 應用程式連線到 SQL Server
如需使用 strict 加密類型建置和連線至 SQL Server 的詳細資訊,請參閱連接字串語法,了解如何正確建置連接字串。 如需新連接字串屬性的詳細資訊,請參閱連接字串加密屬性的其他變更。
使用 ODBC DSN 連線
您可以使用 ODBC DSN 搭配 Strict 連線加密類型來測試 SQL Server 連線。
在 Windows 中搜尋 ODBC 資料來源應用程式。
查看 [ODBC 資料來源管理員] 的 [驅動程式] 索引標籤,以確定您具有最新的 ODBC 驅動程式。
在 [系統 DSN] 索引標籤中,選取 [新增] 以建立 DSN。 然後選取 [ODBC Driver 18 for SQL Server]。 選取 [完成]。 我們將使用此驅動程式來測試連線。
在 [建立新的資料來源至 SQL Server] 視窗中,提供此資料來源的名稱,並將您的 SQL Server 2022 (16.x) 伺服器名稱新增至 [伺服器]。 選取 [下一步]。
所有設定均使用預設值,直到您進入顯示 [連線加密] 的畫面為止。 選取 [嚴格]。 如果您輸入的伺服器名稱與憑證中的名稱不同,或改為使用 IP 位址,請將 [憑證中的主機名稱] 設定為憑證所使用的主機名稱。 選取 [完成]。
當 [ODBC Microsoft SQL Server 設定] 對話方塊快顯時,請選取 [測試資料來源…] 按鈕以測試連線。 這應該會強制此測試執行 SQL Server 的
strict連線。
使用通用資料連結建立連線
您也可以使用 OLE DB 驅動程式搭配通用資料連結 (UDL),透過 strict 加密測試 SQL Server 連線。
若要建立 UDL 檔案以測試連線,請以滑鼠右鍵按一下桌面,然後選取 [新增][文字文件]。 您必須將副檔名從
txt變更為udl。 您可以為檔案提供任何必要名稱。注意
您必須能夠看到副檔名,才能將副檔名從
txt變更為udl。 如果您看不到副檔名,可以開啟 [檔案總管][檢視]>[顯示][副檔名],啟用檢視副檔名。開啟您所建立的 UDL 檔案,然後移至 [提供者] 索引標籤,以選取 [Microsoft OLE DB Driver 19 for SQL Server]。 選取 [下一步>>]。
在 [連線] 索引標籤上,輸入您的 SQL Server 伺服器名稱,然後選取用來登入 SQL Server 的驗證方法。
在 [進階] 索引標籤的 [連線加密] 中,選取 [嚴格]。 如果您輸入的伺服器名稱與憑證中的名稱不同,或改為使用 IP 位址,請將 [憑證中的主機名稱] 設定為憑證所使用的主機名稱。 完成時,返回至 [連線] 索引標籤。
選取 [測試連線] 以測試使用 連線加密的連線。
與 SSMS 連線
從第 20 版開始,您可以在 [連線到伺服器] 對話方塊的 [登入] 索引標籤上,在 SQL Server Management Studio (SSMS) 中強制執行嚴格的加密:
連線到 Always On 可用性群組
從 SQL Server 2025(17.x)開始,你可以用 Strict or Mandatory 連線加密類型加密 Windows Server 故障轉移叢集與 Always On 可用性群組副本之間的通訊。 您的可用性群組只有在以 Windows Server 容錯移轉叢集為基礎時才能強制執行加密。 其他類型的可用性群組不支援嚴格的加密。
這些步驟會根據您的可用性是否已存在而有所不同。
若要強制對新的可用性群組進行嚴格加密,請遵循下列步驟:
- 如果您尚未將 TLS 憑證匯入 可用性群組的每個複本,如 憑證需求所定義。 匯入憑證之後,請重新啟動每個 SQL Server 執行個體。
- 使用本文中提及的其中一種強制加密的方法,測試與每個 SQL Server 複本的連線。
-
CREATE AVAILABILITY GROUP ,並將
Encrypt屬性設定為Strict可用性群組的子句中CLUSTER_CONNECTION_OPTIONS。 這可確保可用性群組的所有連線都使用指定的加密類型。 - 如果可用性群組目前在線上,請將可用性群組容錯移轉至次要複本,以將新的加密設定套用至可用性群組。 如果可用性群組無法上線,可能是 設定
ClusterConnectionOptions不正確。 檢查 cluster.log 是否有與叢集無法連線到 SQL Server 複本相關的 ODBC 錯誤 。 或者,您可以在新的次要複本上線並連線到可用性群組之後,將可用性群組失敗回原始主要複本。 - (選用)您可以在每個複本連線通訊協定的 SQL Server Configuration Manager 屬性中,將 [
Yes] 選項設定為進一步強制執行加密。 此設定可確保可用性群組複本的所有連線都使用嚴格的加密。 變更此設定之後,請重新啟動每個 SQL Server 複本。
連線到容錯移轉叢集執行個體
從 SQL Server 2025(17.x)開始,你可以用 or Strict 連線加密類型加密 Windows Server 故障轉移叢集與 Mandatory之間的通訊。 若要這樣做,請遵循下列步驟:
- 如果您尚未將 TLS 憑證匯入 至容錯移轉叢集的每個節點,如 憑證需求所定義。 匯入憑證之後,請重新啟動 SQL Server 執行個體。
- 使用本文中提及的強制加密方法之一,測試容錯移轉叢集執行個體的連線。
-
ALTER SERVER CONFIGURATION 取代為
CLUSTER_CONNECTION_OPTIONS將內容設為EncryptMandatory或Strict的子句。 這可確保容錯移轉叢集執行個體的所有連線都使用指定的加密類型。 - 將執行個體容錯移轉至次要節點,以將新的加密設定套用至容錯移轉叢集執行個體。 如果容錯移轉叢集執行個體無法上線,可能是未
ClusterConnectionOptions正確設定。 檢查 cluster.log 是否有與叢集無法連線到 SQL Server 執行個體相關的 ODBC 錯誤 。 或者,您可以在新的次要節點上線並連線至容錯移轉叢集執行個體之後,將執行個體容錯回復至原始主要節點。 - (選用)您可以在叢集中每個節點的連線通訊協定的 SQL Server Configuration Manager 屬性中,將 [
Yes] 選項設定為進一步強制執行加密。 此設定可確保容錯移轉叢集執行個體的所有連線都使用嚴格的加密。 在次要節點上進行此變更、將執行個體容錯移轉至該節點、然後在主要節點上進行變更。
使用 SQL Server Configuration Manager 強制嚴格加密
您可以從 SQL Server 2022 (16.x) 開始,使用 SQL Server Configuration Manager 強制執行嚴格的加密。 若要這樣做,請依照下列步驟執行:
開啟 SQL Server 組態管理員。
在左窗格中,展開 [SQL Server 網路設定],然後選取 [InstanceName] 的 [通訊協定]。
以滑鼠右鍵按一下 TCP/IP,然後選取 [屬性]。
在 [TCP/IP 屬性] 對話方塊中,移至 [旗標] 索引標籤,然後針對 [強制嚴格加密] 選項選取 [是]:
在維護時段期間重新啟動 SQL Server 執行個體以套用變更。
備註
如果您看到 SSL certificate validation failed,請驗證:
- 伺服器憑證在您要用於測試的電腦上有效
- 至少符合下列其中一項條件:
- 提供者 SQL Server 符合 CA 名稱或憑證中的其中一個 DNS 名稱。
-
HostNameInCertificate連接字串屬性符合 CA 名稱或憑證中的其中一個 DNS 名稱。