代码之家  ›  专栏  ›  技术社区  ›  Peanut

SQL Server 2008-透明数据加密未加密访问

  •  0
  • Peanut  · 技术社区  · 14 年前

    Oracle Transparent Data Encryption undecrypted access -但是对于SQLServer2008。


    我可以设置一个 SQL Server 2008 数据库中的所有语句都是真的吗?

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

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

    如果这是可能的,我该怎么做。如果这是不可能的,我有什么选择,至少'接近'这些要求?

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

    谢谢。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Mitch Wheat    14 年前

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

    透明数据加密(TDE) 执行实时I/O加密和 解密数据和日志文件。 加密密钥(DEK),存储 在的数据库启动记录中 恢复期间的可用性。德克 是使用 存储在主机中的证书 服务器的数据库或 模块。TDE保护“静止”数据, 意味着数据和日志文件。它 提供遵守 许多法律、法规和指南 这使软件开发人员能够 不改变加密算法 现有应用程序。 Ref .

    以下是关于TDE的一些你应该考虑的事情 Brad McGehee's blog

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

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

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

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

    • 用TDE加密的数据库不能利用sqlserver2008新的备份压缩。如果您想同时利用备份压缩和加密,就必须使用第三方应用程序,例如SQL backup,它允许您执行这两项任务而不会受到惩罚。

    How to: Encrypt a Column of Data