共用方式為


使用嚴格加密來連接至 SQL Server

適用於:SQL Server 2022 (16.x)

嚴格連線加密會強制執行良好的安全性做法,並讓 SQL Server 流量可由標準網路裝置管理。

在本文中,瞭解如何使用嚴格連線類型連線到 SQL Server 2022 (16.x) 和更新版本。

必要條件

使用 .NET 應用程式連線到 SQL Server

如需使用 strict 加密類型建置和連線至 SQL Server 的詳細資訊,請參閱連接字串語法,了解如何正確建置連接字串。 如需新連接字串屬性的詳細資訊,請參閱連接字串加密屬性的其他變更

使用 ODBC DSN 連線

您可以使用 ODBC DSN 搭配 Strict 連線加密類型來測試 SQL Server 連線。

  1. 在 Windows 中搜尋 ODBC 資料來源應用程式。

    ODBC 資料來源應用程式的螢幕擷取畫面。

  2. 查看 [ODBC 資料來源管理員] 的 [驅動程式] 索引標籤,以確定您具有最新的 ODBC 驅動程式。

    可用的驅動程式的螢幕擷取畫面。

  3. 在 [系統 DSN] 索引標籤中,選取 [新增] 以建立 DSN。 然後選取 [ODBC Driver 18 for SQL Server]。 選取 [完成]。 我們將使用此驅動程式來測試連線。

  4. 在 [建立新的資料來源至 SQL Server] 視窗中,提供此資料來源的名稱,並將您的 SQL Server 2022 (16.x) 伺服器名稱新增至 [伺服器]。 選取 [下一步]。

    使用 ODBC 驅動程式建立資料來源的螢幕擷取畫面。

  5. 所有設定均使用預設值,直到您進入顯示 [連線加密] 的畫面為止。 選取 [嚴格]。 如果您輸入的伺服器名稱與憑證中的名稱不同,或改為使用 IP 位址,請將 [憑證中的主機名稱] 設定為憑證所使用的主機名稱。 選取 [完成]。

    顯示嚴格加密類型的螢幕擷取畫面。

  6. 當 [ODBC Microsoft SQL Server 設定] 對話方塊快顯時,請選取 [測試資料來源…] 按鈕以測試連線。 這應該會強制此測試執行 SQL Server 的 strict 連線。

您也可以使用 OLE DB 驅動程式搭配通用資料連結 (UDL),透過 strict 加密測試 SQL Server 連線。

  1. 若要建立 UDL 檔案以測試連線,請以滑鼠右鍵按一下桌面,然後選取 [新增][文字文件]。 您必須將副檔名從 txt 變更為 udl。 您可以為檔案提供任何必要名稱。

    注意

    您必須能夠看到副檔名,才能將副檔名從 txt 變更為 udl。 如果您看不到副檔名,可以開啟 [檔案總管][檢視]>[顯示][副檔名],啟用檢視副檔名。

  2. 開啟您所建立的 UDL 檔案,然後移至 [提供者] 索引標籤,以選取 [Microsoft OLE DB Driver 19 for SQL Server]。 選取 [下一步>>]。

    UDL 提供者畫面的螢幕擷取畫面。

  3. 在 [連線] 索引標籤上,輸入您的 SQL Server 伺服器名稱,然後選取用來登入 SQL Server 的驗證方法。

    UDL 連線畫面的螢幕擷取畫面。

  4. 在 [進階] 索引標籤的 [連線加密] 中,選取 [嚴格]。 如果您輸入的伺服器名稱與憑證中的名稱不同,或改為使用 IP 位址,請將 [憑證中的主機名稱] 設定為憑證所使用的主機名稱。 完成時,返回至 [連線] 索引標籤。

    UDL 進階畫面的螢幕擷取畫面。

  5. 選取 [測試連線] 以測試使用 連線加密的連線。

    UDL 連線畫面和測試連線的螢幕擷取畫面。

與 SSMS 連線

從第 20 版開始,您可以在 [連線到伺服器] 對話方塊的 [登入] 索引標籤上,在 SQL Server Management Studio (SSMS) 中強制執行嚴格的加密:

SQL Server Management Studio 中 [連線到伺服器] 對話方塊的螢幕擷取畫面。

連線到 Always On 可用性群組

從 SQL Server 2025(17.x)開始,你可以用 Strict or Mandatory 連線加密類型加密 Windows Server 故障轉移叢集與 Always On 可用性群組副本之間的通訊。 您的可用性群組只有在以 Windows Server 容錯移轉叢集為基礎時才能強制執行加密。 其他類型的可用性群組不支援嚴格的加密。

這些步驟會根據您的可用性是否已存在而有所不同。

若要強制對新的可用性群組進行嚴格加密,請遵循下列步驟:

  1. 如果您尚未將 TLS 憑證匯入 可用性群組的每個複本,如 憑證需求所定義。 匯入憑證之後,請重新啟動每個 SQL Server 執行個體。
  2. 使用本文中提及的其中一種強制加密的方法,測試與每個 SQL Server 複本的連線。
  3. CREATE AVAILABILITY GROUP ,並將 Encrypt 屬性設定為 Strict 可用性群組的子句中 CLUSTER_CONNECTION_OPTIONS 。 這可確保可用性群組的所有連線都使用指定的加密類型。
  4. 如果可用性群組目前在線上,請將可用性群組容錯移轉至次要複本,以將新的加密設定套用至可用性群組。 如果可用性群組無法上線,可能是 設定 ClusterConnectionOptions 不正確。 檢查 cluster.log 是否有與叢集無法連線到 SQL Server 複本相關的 ODBC 錯誤 。 或者,您可以在新的次要複本上線並連線到可用性群組之後,將可用性群組失敗回原始主要複本。
  5. (選用)您可以在每個複本連線通訊協定的 SQL Server Configuration Manager 屬性中,將 [Yes] 選項設定為進一步強制執行加密。 此設定可確保可用性群組複本的所有連線都使用嚴格的加密。 變更此設定之後,請重新啟動每個 SQL Server 複本。

連線到容錯移轉叢集執行個體

從 SQL Server 2025(17.x)開始,你可以用 or Strict 連線加密類型加密 Windows Server 故障轉移叢集與 Mandatory之間的通訊。 若要這樣做,請遵循下列步驟:

  1. 如果您尚未將 TLS 憑證匯入 至容錯移轉叢集的每個節點,如 憑證需求所定義。 匯入憑證之後,請重新啟動 SQL Server 執行個體。
  2. 使用本文中提及的強制加密方法之一,測試容錯移轉叢集執行個體的連線。
  3. ALTER SERVER CONFIGURATION 取代為 CLUSTER_CONNECTION_OPTIONS 將內容設為 EncryptMandatoryStrict的子句。 這可確保容錯移轉叢集執行個體的所有連線都使用指定的加密類型。
  4. 將執行個體容錯移轉至次要節點,以將新的加密設定套用至容錯移轉叢集執行個體。 如果容錯移轉叢集執行個體無法上線,可能是未 ClusterConnectionOptions 正確設定。 檢查 cluster.log 是否有與叢集無法連線到 SQL Server 執行個體相關的 ODBC 錯誤 。 或者,您可以在新的次要節點上線並連線至容錯移轉叢集執行個體之後,將執行個體容錯回復至原始主要節點。
  5. (選用)您可以在叢集中每個節點的連線通訊協定的 SQL Server Configuration Manager 屬性中,將 [Yes] 選項設定為進一步強制執行加密。 此設定可確保容錯移轉叢集執行個體的所有連線都使用嚴格的加密。 在次要節點上進行此變更、將執行個體容錯移轉至該節點、然後在主要節點上進行變更。

使用 SQL Server Configuration Manager 強制嚴格加密

您可以從 SQL Server 2022 (16.x) 開始,使用 SQL Server Configuration Manager 強制執行嚴格的加密。 若要這樣做,請依照下列步驟執行:

  1. 開啟 SQL Server 組態管理員

  2. 在左窗格中,展開 [SQL Server 網路設定],然後選取 [InstanceName] 的 [通訊協定]。

  3. 以滑鼠右鍵按一下 TCP/IP,然後選取 [屬性]。

  4. [TCP/IP 屬性] 對話方塊中,移至 [旗標] 索引標籤,然後針對 [強制嚴格加密] 選項選取 []:

    SQL Server Configuration Manager 中 [強制嚴格加密] 選項的螢幕擷取畫面。

  5. 在維護時段期間重新啟動 SQL Server 執行個體以套用變更。

備註

如果您看到 SSL certificate validation failed,請驗證:

  • 伺服器憑證在您要用於測試的電腦上有效
  • 至少符合下列其中一項條件:
    • 提供者 SQL Server 符合 CA 名稱或憑證中的其中一個 DNS 名稱。
    • HostNameInCertificate 連接字串屬性符合 CA 名稱或憑證中的其中一個 DNS 名稱。