SQL Server 和客户端加密摘要

本文概述了启用对 SQL Server 的加密的各种场景和相关过程,以及如何验证加密是否正常工作。

加密与服务器的所有连接(服务器端加密)

证书类型 在服务器属性中强制加密 在每个客户端上导入服务器证书 信任服务器证书设置 加密连接字符串中的属性 注释
自签名证书 - 由 SQL Server 自动创建 无法完成 忽略 SQL Server 2016 (13.x) 及更早版本使用 SHA1 算法。 SQL Server 2017 (14.x) 及更高版本使用 SHA256。 有关详细信息,请参阅 SQL Server 2017 中自签名证书的哈希算法的更改。 不建议将此方法用于生产用途。
使用 New-SelfSignedCertificate 或 makecert 创建的自签名证书 - 选项 1 忽略 不建议将此方法用于生产用途。
使用 New-SelfSignedCertificate 或 makecert 创建的自签名证书 - 选项 2 可选 忽略 不建议将此方法用于生产用途。
公司的证书服务器或来自不在参与者列表 - Microsoft 受信任的根程序 - 选项 1 中的证书颁发机构 (CA) 忽略
公司的证书服务器或来自不在参与者列表 - Microsoft 受信任的根程序 - 选项 2 中的证书颁发机构 (CA) 可选 忽略
受信任的根颁发机构 可选 忽略 建议采用此方法。

加密来自特定客户端的连接

证书类型 在服务器属性中强制加密 在每个客户端上导入服务器证书 在客户端上指定信任服务器证书设置 在客户端将加密属性手动指定为“是”/“True” 注释
自签名证书 - 由 SQL Server 自动创建 无法完成 忽略 SQL Server 2016 (13.x) 及更早版本使用 SHA1 算法。 SQL Server 2017 (14.x) 及更高版本使用 SHA256。 有关详细信息,请参阅 SQL Server 2017 中自签名证书的哈希算法的更改。 不建议将此方法用于生产用途。
使用 New-SelfSignedCertificate 或 makecert 创建的自签名证书 - 选项 1 不建议将此方法用于生产用途。
使用 New-SelfSignedCertificate 或 makecert 创建的自签名证书 - 选项 2 可选 不建议将此方法用于生产用途。
公司的证书服务器或来自不在参与者列表 - Microsoft 受信任的根程序 - 选项 1 中的 CA
公司的证书服务器或来自不在参与者列表 - Microsoft 受信任的根程序 - 选项 2 中的 CA 可选
受信任的根颁发机构 可选 建议采用此方法。

如何判断加密是否正常工作?

可以使用 Microsoft 网络监视器或网络探测器等工具来监视通信,并检查该工具中捕获的数据包的详细信息,以确认流量已加密。

或者,可以使用 Transact-SQL (T-SQL) 命令来检查 SQL Server 连接的加密状态。 为此,请执行以下步骤:

  1. 在 SQL Server Management Studio (SSMS) 中打开一个新的查询窗口,并连接到 SQL Server 实例。
  2. 执行以下 T-SQL 命令以检查 encrypt_option 列的值。 对于加密连接,该值为 TRUE
SELECT * FROM sys.dm_exec_connections

另请参阅

后续步骤