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 是的 是的 可选 忽略 不建议使用此方法供生产使用。
公司证书服务器或来自未列入参与者列表的证书颁发机构(CA)- Microsoft受信任根计划 - 选项 1 是的 是的 忽略
公司的证书服务器或来自不在参与者列表中的证书颁发机构 (CA) - Microsoft受信任的根计划 - 选项 2 是的 是的 可选 忽略
受信任的根证书认证机构 是的 可选 忽略 建议采用此方法。

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

证书类型 在服务器属性中强制加密 在每个客户端上导入服务器证书 在客户端上指定信任服务器证书设置 在客户端手动将加密属性指定为 Yes/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 受信任根计划参与者列表中的 CA - 选项 1 是的 是的
公司的证书服务器或来自不在 参与者列表中的 CA - Microsoft受信任的根计划 - 选项 2 是的 可选 是的
受信任的根颁发机构 可选 是的 建议采用此方法。

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

可以使用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;