Oracle中基于角色或用户的TDE加密访问

时间:2015-01-21 01:01:58

标签: oracle encryption tde

环境:带有基于Java的应用程序的Oracle 11g数据库

我们希望加密数据库中的数据,用于表格的一些敏感列      我们希望这些列能够被解密并且对一组用户A可见。 我们不希望这些加密列对另一组用户B可见。 但是,此用户集B应该能够看到表中其余的非加密列。

从各种文章和帖子中,我了解TDE在列级别上进行了传统的加密和解密,但是如果上述基于用户/角色的加密能够以列级粒度进行,则无法找到明确的信息。

我们可以使用TDE实现上述目标吗?

1 个答案:

答案 0 :(得分:0)

我不是DBA,但根据我对TDE的理解,从任何查询中查看时加密都不明显。它只加密磁盘数据文件中的数据,因此如果直接从文件中转储它就无法读取。

一个优秀的DBA可能有更好的答案,但只是袖手旁观,这就是我的建议。

有敏感数据的两个字段。一个是明确的(虽然TDE可能是一个好主意)而另一个是以某种方式混淆。这些字段可以标准化为单独的表。不允许直接访问表格,而是使用视图。该视图将被定义为:

create view TableName as
  select ...,
         case ROLE when 'A' then clear_field else obfuscated_field end as FieldName,
         ...
  from  SensitiveTable
  join  PossibleNormalizedTable on ... ;

您还需要视图上的触发器。如果只有A可以清楚地看到该字段,可能只有A可以插入并更新它。