我的问题是 - Oracle透明数据加密未注重访问 - 但对于SQL Server 2008。


我可以设置一个 SQL Server 2008 数据库以以下所有语句为真的方式?

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

b)加密的列是针对授权用户透明解密的,在此发生授权,例如具有一定的角色或特权。

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

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

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

谢谢。

有帮助吗?

解决方案

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

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

您应该考虑以下一些有关TDE的事情(由 布拉德·麦吉(Brad McGehee)的博客):

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

  • TDE不是颗粒状的。然后在加密中的整个数据库。

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

  • FileStream数据未加密。

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

  • 尽管实施TDE所需的资源要少于列级加密,但它仍然会引起一些开销,这可能会阻止其在经历CPU瓶颈的SQL服务器上使用。

  • 使用TDE加密的数据库无法利用SQL Server 2008的新备份压缩。如果您想同时利用备份压缩和加密,则必须使用第三方应用程序,例如SQL备份,该应用程序使您可以执行这两个任务而无需罚款。

这可能是感兴趣的: 如何:加密数据列

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top