【问题标题】:SQL Server 2008 - Transparent Data Encryption undecrypted accessSQL Server 2008 - 透明数据加密未解密访问
【发布时间】:2011-03-11 18:57:47
【问题描述】:

我的问题与 - Oracle Transparent Data Encryption undecrypted access 重复 - 但针对 SQL Server 2008。


我能否设置一个 SQL Server 2008 数据库以使以下所有陈述都成立?

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

b) 加密列被授权用户透明地解密,授权发生在例如拥有一定的角色或特权

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

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

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

谢谢。

【问题讨论】:

    标签: sql-server-2008 tde encryption


    【解决方案1】:

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

    透明数据加密 (TDE) 执行实时 I/O 加密和 解密数据和日志文件。 加密使用数据库 加密密钥 (DEK),存储在 在数据库引导记录中 恢复期间的可用性。得克 是一个对称密钥,通过使用 存储在 master 中的证书 服务器的数据库或 由 EKM 保护的非对称密钥 模块。 TDE 保护“静态”数据, 表示数据和日志文件。它 提供遵守的能力 许多法律、法规和准则 成立于各个行业。 这使软件开发人员能够 使用 AES 和 3DES 加密数据 加密算法不变 现有的应用程序。 Ref.

    关于 TDE,您应该考虑以下几点(由 Brad McGehee's blog 提供):

    • 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,它允许您执行这两项任务而不会受到惩罚。

    这可能很有趣:How to: Encrypt a Column of Data

    【讨论】:

      猜你喜欢
      • 2011-01-14
      • 1970-01-01
      • 2015-07-06
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 2014-03-09
      • 2012-02-08
      • 1970-01-01
      相关资源
      最近更新 更多