SQL Ser 用分层加密和密钥管理基础结构来加密数据。每一次都使用证书、非对称密钥和对称密钥的组合对它下面的一层进行加密。非对称密钥和对称密钥可以存储在SQL Server之外的可扩展密钥管理(EKM)模块中。 下图说明了加密层次结构的每一层是如何对它下面的一层进行加密的,并显示了最常用的加密配置。对层次结构的开始进行的访问通常收密码保护。
请记住以下概念:
- 为了获得最佳性能,使用对称密钥(而不是证书或者非对称密钥)加密数据
- 数据库主密钥受服务主密钥保护。服务主密钥由SQL Server安装程序创建,并且使用Windows数据保护API(DPAPI)进行加密。
- 堆叠其它层的其他加密层次结构是可能的。
- 可扩展密钥管理(EKM)模块将对称密钥或者非对称密钥保存在SQL Server的外部。
- 透明数据加密(TDE)必须使用称为数据库加密密钥的对称密钥,该密钥受由master数 据库的数据库主密钥保护的证书保护,或者受存储在EKM中的非对称密钥保护.
- 服务主密钥和所有数据库主密钥是对称密钥。
加密机制
SQL Server 提供了下列加密机制:
- Transact-SQL函数
-
非对称密钥
-
对称密钥
-
证书
-
透明数据加密
Transact-SQL函数
插入或者更新项时可使用Transact-SQL函数对各个项进行加密。有关详细信息,请参阅ENCRYPTBYPASSPHRASE (Transact SQL) 和 DECRYPTBYPASSPHRASE (Transact SQL)。