我已经用 Oracle 和 Java 标记了这个问题,因为 Oracle 和 Java 解决方案都可以解决这个问题。
我是 Oracle 安全性的新手,并且遇到了以下要解决的问题。我在互联网上做了一些研究,但到目前为止我没有运气。起初,我认为Oracle TDE
这可能对我的问题有所帮助,但在这里:Oracle TDE 可以保护 DBA 的数据吗?它似乎TDE
不能保护数据DBA
,这是一个不能容忍的问题。
这是问题所在:
我有一个包含数百万条记录的表。我有一个 Java 应用程序,它使用相等或范围条件对表中的列进行查询,该列是表的主键列。主键列包含敏感数据,因此已经加密。因此,使用来自应用程序的正常(即解密)值查询数据不能使用主键的唯一索引访问路径。我需要在不更改应用程序代码的情况下提高查询的性能(如果需要,可以修改应用程序配置,但不能修改代码)。只要该列保持加密状态,就可以在数据库端进行任何必要的更改。
请甲骨文人士:您对这个问题有什么建议?如何在解密的列值上创建索引并以某种方式强制 Oracle 使用该索引?如何使用诸如散列分区之类的分区?观点如何?任何,任何解决方案?
请Java人:我自己有一个非常模糊的想法,即在两者之间(即数据库和应用程序之间)创建一个单独的应用程序,它充当代理,接收来自应用程序的查询并将解密的值替换为加密的值和将它发送给数据库,然后它接收响应并将结果返回给应用程序。代理应该像数据库一样运行,以便应用程序可以通过仅更改配置文件中的连接字符串来连接到它。这行得通吗?如何?
提前感谢您的所有帮助!