我们有使用 SQL Server 2016 加密敏感列数据的要求,并选择了 Always Encrypted(AE) 功能来使用确定性方法加密这些列。
由于 AE 确定性加密不允许对这些加密列进行不等式、范围或 LIKE 查询,因此我们尝试使用对称密钥(列级)加密技术对这些类型的列进行加密。
在某些列(不需要任何不等式、范围或 LIKE 查询)上实现 AE 功能并在需要生成不等式、范围或 LIKE 查询的列上实现对称密钥类型加密是否是一个好习惯?
考虑到性能、安全性和维护性,将 AE 加密和列级加密结合在一个表上是一个好习惯吗?
请专家指教。
我已经在 SQL Server 2016 中实现了 Always Encrypted 功能。 CMK 的有效期为一年。如何更新或延长有效期?
我使用证书、带密码的主密钥使用 SQL Server 对称密钥加密技术实现了数据加密。
当我们从 PROD 服务器备份数据库并恢复到不同的服务器时,我们使用 OPEN MASTER KEY DECRYPTION BY PASSWORD = ''... 语句打开主密钥。
主密钥的密码由 SQL 管理员管理。
打开主密钥后,我们可以使用 DecryptByKey 函数解密列数据。但是,一旦我们做了一些分析,我们就想停止解密数据。一段时间后,没有开发人员应该能够解密数据。
如何停止解密数据或关闭主密钥,让开发人员无法看到明文数据?