启用加密连接

已完成

可以使用传输层安全性 (TLS) 对通过网络在 SQL Server 实例与客户端应用程序之间传输的数据进行加密。 TLS 加密在协议层执行,并可用于所有支持的 SQL Server 和 Azure SQL 数据库服务。

传输层安全 (TLS) (Transport Layer Security) (TLS)

传输层安全性 (TLS) 是用于加密连接的协议,它提高了通过网络在 SQL Server 实例和应用程序之间传输数据的安全性。

一旦证书颁发机构颁发了专用证书,并且已将其分配给运行 SQL Server 实例的服务器,服务器就可以使用它来安全地验证客户端请求。 这种验证要求将运行客户端应用程序的计算机配置为信任 SQL Server 所使用的证书。

对于 Azure SQL 数据库,可以在服务器级别强制实施最低 TLS 版本。 目前支持的 TLS 版本是 1.0、1.1 和 1.2。 如果客户端应用程序支持加密连接,我们建议在测试应用程序后将其设置为支持的最新 TLS 版本。 选择最新的 TLS 版本是一个很好的做法,因为它为旧版本中发现的漏洞提供了其他修补程序。

Minimal TLS version property for Azure SQL Database.

如上图所示,可以从“防火墙和虚拟网络”屏幕访问 SQL 数据库的最低 TLS 版本设置。

下表说明了可用的选项,具体取决于客户端应用程序是否支持加密连接。

方案 选项
不支持 TLS 将最低 TLS 版本设置保留为默认值。
支持的最新 TLS 版本 将最低 TLS 版本设置设为 1.2。
支持的较旧 TLS 版本 将最低 TLS 版本设置设为 1.0 或 1.2。 评估工作负载,了解 TLS 1.2 就绪情况并制定迁移计划。

启用 TLS 加密可为 SQL Server 实例和应用程序之间的通信提供隐私和数据安全性。 但是,当 SQL Server 与客户端应用程序之间的流量使用 TLS 加密时,连接时需要额外的网络往返和其他处理。

对于 Azure SQL 托管实例,请使用 az sql mi update Azure CLI 命令或 Set-AzSqlInstance PowerShell cmdlet 配置最低 TLS 版本。

注意

默认情况下,Azure SQL 数据库不需要特定的最低 TLS 版本。 强制实施 TLS 版本后,无法再还原为默认值。

证书

必须使用本地管理员帐户运行 SQL Server 配置管理器,才能安装供 SQL Server 使用的证书。

此外,证书必须满足以下条件:

  • 证书必须位于本地计算机证书存储或当前用户证书存储中。

  • SQL Server 服务帐户必须有权限访问证书。

  • 证书必须在有效期内。

注意

如果未提供正确的访问权限,则重启 SQL Server 服务将失败。

有关安装 TLS 证书时的完整要求列表,请参阅启用与数据库引擎的加密连接

配置 SQL Server 实例

可以按照以下步骤配置 SQL Server 实例以使用加密连接:

  1. 在“SQL Server 配置管理器”中,展开“SQL Server 网络配置”,右键单击“<服务器实例> 的协议”,然后选择“属性”。

    SQL Server Configuration Manager screen for a SQL Server instance.

  2. 在“<服务器实例> 的协议属性”对话框中,选择“证书”选项卡,然后从“证书”下拉列表中选择证书。

    Protocols dialog box from Configuration Manager.

  3. 在“标志”选项卡的“ForceEncryption”属性中,选择“是”,然后单击“确定”。

    Protocols for SQL Server instance properties from Configuration Manager.

  4. 重启 SQL Server 服务。

完成必要的配置后,可以通过 SQL Server Management Studio 测试连接:

  1. “连接到服务器” 对话框中,填写连接信息,然后单击 “选项”

  2. 在“连接属性”选项卡上,单击“加密连接”,然后单击“连接”。

    Connect to Server dialog showing the encrypt connection feature on SSMS.

必须正确执行所有步骤,才能使用 TLS 通过SQL Server Management Studio 进行身份验证。