0

我的问题是Oracle 透明数据加密未解密访问的副本,但适用于 SQL Server 2008。


我能否以以下所有陈述都为真的方式设置SQL Server 2008数据库?

a) 某些列,可能所有列都被加密,因此对数据库文件的直接文件访问将不允许攻击者检索任何记录

b) 对于授权用户,加密列被透明地解密,其中授权发生,例如通过具有特定角色或特权

c) 具有执行“正常”管理任务(调整、创建/删除模式对象、重新启动数据库、从数据字典中选择)的适当权限的管理员可以选择表,但只会在加密列中看到加密数据。

如果这是可能的,我该怎么做。如果不可能,我必须至少“接近”这些要求有哪些选择?

我知道 a) 是可能的,但我不确定 b) 和 c)。

谢谢。

4

1 回答 1

1

不,因为您不能仅对选定的列执行透明数据加密:

透明数据加密 (TDE) 对数据和日志文件执行实时 I/O 加密和解密。加密使用数据库加密密钥 (DEK),该密钥存储在数据库引导记录中以供恢复期间使用。DEK 是使用存储在服务器主数据库中的证书或受 EKM 模块保护的非对称密钥来保护的对称密钥。TDE 保护“静态”数据,即数据和日志文件。它提供了遵守各个行业制定的许多法律、法规和准则的能力。这使软件开发人员能够使用 AES 和 3DES 加密算法加密数据,而无需更改现有应用程序。 参考

以下是关于 TDE 的一些注意事项(由Brad McGehee 的博客提供):

  • TDE 不保护内存中的数据,因此任何拥有数据库的 DBO 权限或 SQL Server 实例的 SA 权限的人都可以看到敏感数据。换句话说,TDE 不能阻止 DBA 查看他们想查看的任何数据。

  • TDE 不是粒度的。然后加密整个数据库。

  • TDE 不保护客户端应用程序和 SQL Server 之间的通信,因此必须使用其他加密方法来保护通过网络流动的数据。

  • FILESTREAM 数据未加密。

  • 当 SQL Server 实例上的任何一个数据库打开 TDE 时,tempdb 数据库会自动加密,这可能会导致同一实例上运行的加密和非加密数据库的性能下降。

  • 尽管与列级加密相比,实现 TDE 所需的资源更少,但它仍然会产生一些开销,这可能会阻止它在遇到 CPU 瓶颈的 SQL Server 上使用。

  • 使用 TDE 加密的数据库无法利用 SQL Server 2008 的新备份压缩。如果您想同时利用备份压缩和加密,则必须使用第三方应用程序,例如 SQL Backup,它允许您执行这两项任务而不会受到任何损失。

这可能很有趣:如何:加密数据列

于 2010-07-05T06:38:21.503 回答