SQL Server 加密

适用于: 是SQL Server(所有支持的版本) 是Azure SQL 数据库 是Azure SQL 托管实例

加密是指通过使用密钥或密码对数据进行模糊处理的过程。 这会使数据变得毫无用处,除非使用对应的解密密钥或密码。 加密并不解决访问控制问题。 不过,它可以通过限制数据丢失来增强安全性,即使在访问控制失效的情况下。 例如,如果数据库主机配置有误且黑客获取了敏感数据,则如果数据已加密,那么被盗信息可能会毫无用处。

重要

虽然加密是可帮助确保安全性的有力工具,但它并不适用于所有数据或连接。 在决定是否实现加密时,请考虑用户访问数据的方式。 如果用户通过公共网络访问数据,则可能需要使用数据加密以增强安全性。 但是,如果所有访问都具有某项安全 Intranet 配置,则可能不需要使用加密。 任何时候使用加密时还应包括密码、密钥和证书的维护策略。

备注

有关传输层安全性 (TLS 1.2) 的最新信息,请参阅针对 Microsoft SQL Server 的 TLS 1.2 支持

您可以在 SQL Server 中为连接、数据和存储过程使用加密。 以下主题包含关于 SQL Server 中的加密的详细信息。

加密层次结构
提供有关 SQL Server中的加密层次结构的信息。

选择加密算法
说明如何选择有效的加密算法。

透明数据加密 (TDE)
提供有关如何以透明方式来加密数据的一般信息。

SQL Server 和数据库加密密钥(数据库引擎)
在 SQL Server中,加密密钥包括一组用来保护敏感数据的公钥、私钥和对称密钥。 该部分介绍如何实现和管理加密密钥。

Always Encrypted(数据库引擎)
确保本地数据库管理员、云数据库操作员或其他权限虽高但没有获得此方面授权的用户无法访问加密的数据。

动态数据屏蔽
通过对非特权用户屏蔽敏感数据来限制敏感数据的公开。

SQL Server 证书和非对称密钥
有关如何使用公钥加密的信息。

保护 SQL Server
简要介绍如何帮助确保 SQL Server 平台的安全性以及如何处理用户和安全对象。

Azure SQL 数据库安全功能概述
对用于保护数据、控制访问及执行主动监视的 Azure SQL 数据库安全功能的概述。

加密函数 (Transact-SQL)
说明如何实现加密函数。

ENCRYPTBYPASSPHRASE (Transact-SQL)
说明如何使用密码来加密数据。

ENCRYPTBYKEY (Transact-SQL)
说明如何使用对称密钥来加密数据。

ENCRYPTBYASYMKEY (Transact-SQL)
说明如何使用非对称密钥来加密数据。

ENCRYPTBYCERT (Transact-SQL)
说明如何使用证书来加密数据。

外部资源

Microsoft TechNet:SQL Server 技术中心:SQL Server 2012 安全性和保护
包含有关 SQL Server 安全性的最新信息。

另请参阅

sys.key_encryptions (Transact-SQL)
SQL Server 和数据库加密密钥(数据库引擎)
备份和还原 Reporting Services 加密密钥
启用数据库引擎的加密连接