SQL Server 與用戶端加密摘要
本文摘要說明為 SQL Server 啟用加密的各種案例和相關程序,以及驗證加密是否正常運作的方法。
加密伺服器的所有連線 (伺服器端加密)
憑證類型 | 在伺服器屬性中強制加密 | 在每個用戶端上匯入伺服器憑證 | 信任伺服器憑證設定 | 加密連接字串中的屬性 | 註解 |
---|---|---|---|---|---|
自我簽署憑證 - 由 SQL Server 自動建立 | Yes | 無法執行 | Yes | 忽略 | SQL Server 2016 (13.x) 和較舊版本使用 SHA1 演算法。 SQL Server 2017 (14.x) 和更新版本使用 SHA256。 如需詳細資訊,請參閱 SQL Server 2017 中的自我簽署憑證雜湊演算法變更 (英文)。 不建議將此方法用於生產環境。 |
使用 New-SelfSignedCertificate 或 makecert 建立的自我簽署憑證 - 選項 1 | 是 | 無 | Yes | 忽略 | 不建議將此方法用於生產環境。 |
使用 New-SelfSignedCertificate 或 makecert 建立的自我簽署憑證 - 選項 2 | Yes | 是 | 選用 | 忽略 | 不建議將此方法用於生產環境。 |
公司的憑證伺服器或來自不在參與者清單 - Microsoft 信任的根計畫內的憑證授權單位 (CA) - 選項 1 | 是 | 無 | Yes | 忽略 | |
公司的憑證伺服器或來自不在參與者清單 - Microsoft 信任的根計畫內的憑證授權單位 (CA) - 選項 2 | Yes | 是 | 選用 | 忽略 | |
信任的根授權單位 | 是 | 否 | 選擇性 | 忽略 | 我們建議採用此方法。 |
加密來自特定用戶端的連線
憑證類型 | 在伺服器屬性中強制加密 | 在每個用戶端上匯入伺服器憑證 | 在用戶端上指定信任伺服器憑證設定 | 在用戶端將加密屬性手動指定為 [是]/[True] | 註解 |
---|---|---|---|---|---|
自我簽署憑證 - 由 SQL Server 自動建立 | Yes | 無法執行 | Yes | 忽略 | SQL Server 2016 (13.x) 和較舊版本使用 SHA1 演算法。 SQL Server 2017 (14.x) 和更新版本使用 SHA256。 如需詳細資訊,請參閱 SQL Server 2017 中的自我簽署憑證雜湊演算法變更 (英文)。 不建議將此方法用於生產環境。 |
使用 New-SelfSignedCertificate 或 makecert 建立的自我簽署憑證 - 選項 1 | No | 無 | .是 | Yes | 不建議將此方法用於生產環境。 |
使用 New-SelfSignedCertificate 或 makecert 建立的自我簽署憑證 - 選項 2 | No | 是 | 選用 | Yes | 不建議將此方法用於生產環境。 |
公司的憑證伺服器或來自不在參與者清單 - Microsoft 信任的根計畫中的 CA - 選項 1 | No | 無 | .是 | Yes | |
公司的憑證伺服器或來自不在參與者清單 - Microsoft 信任的根計畫中的 CA - 選項 2 | No | 是 | 選用 | Yes | |
信任的根授權單位 | No | No | 選擇性 | Yes | 我們建議採用此方法。 |
如何判斷加密是否正常運作?
您可以使用 Microsoft 網路監視器或網路 Sniffer 之類的工具來監視通訊,並檢查工具中所擷取封包的詳細資料,以確認流量已加密。
或者,您可以使用 Transact-SQL (T-SQL) 命令來檢查 SQL Server 連線的加密狀態。 若要這樣做,請遵循下列步驟:
- 在 SQL Server Management Studio (SSMS) 中開啟新的查詢視窗,並連線至 SQL Server 執行個體。
- 執行下列 T-SQL 命令來檢查
encrypt_option
資料行的值。 針對加密連線,該值會是TRUE
。
SELECT * FROM sys.dm_exec_connections