OracleとJavaの両方のソリューションがこの問題に受け入れられるため、この問題にOracleとJavaの両方のタグを付けました。
私はOracleのセキュリティに不慣れであり、解決すべき以下の問題が提示されています。私はインターネットでいくつかの調査をしましたが、今のところ運がありません。Oracle TDE
最初は、自分の問題に役立つかもしれないと思いましたが、ここでは、 Oracle TDEはDBAからデータを保護できますか?TDE
データを保護していないようで、DBA
これは許容されない問題です。
ここに問題があります:
何百万ものレコードを含むテーブルがあります。テーブルの主キー列であるテーブルの列に対して、等式または範囲の基準を使用してこのテーブルをクエリするJavaアプリケーションがあります。主キー列には機密データが含まれているため、すでに暗号化されています。その結果、アプリケーションから通常の(つまり復号化された)値を使用してデータをクエリすると、主キーの一意のインデックスアクセスパスを使用できなくなります。アプリケーションコードを変更せずにクエリのパフォーマンスを向上させる必要があります(アプリケーション構成は必要に応じて変更できますが、コードは変更できません)。その列が暗号化されている限り、データベース側で必要な変更を行ってもかまいません。
オラクルの人々はお願いします:この問題に対してどのような解決策を提案しますか?復号化された列の値にインデックスを作成し、どういうわけかOracleにこのインデックスを使用させるにはどうすればよいですか?ハッシュパーティションなどのパーティションをどのように使用できますか?ビューはどうですか?任意、任意の解決策?
Javaの人々にお願いします:私自身、この非常に漠然とした考えを持っています。それは、アプリケーションからクエリを受け取り、復号化された値を暗号化された値に置き換えるプロキシとして機能する、その間に(つまり、データベースとアプリケーションの間で)別のアプリケーションを作成することです。データベースに送信し、応答を受信して、結果をアプリケーションに返します。プロキシはデータベースのように動作する必要があります。これにより、アプリケーションは、構成ファイルの接続文字列のみを変更することでプロキシに接続できるようになります。これは機能しますか?どのように?
よろしくお願いします!