5.1 Oracle Data Redactionの一般的なセキュリティのガイドライン

Oracle Data Redactionを使用するためには、一般的なセキュリティのガイドラインを理解しておくことが重要です。

  • Oracle Data Redactionは、推論によって実際の値を判断しようと試みる非定型なSQL問合せを実行するユーザーに対する保護目的では使用できません。推論とは、問合せを繰り返し試行して実際のデータを見つけるように設計されたプロセスのことです。たとえば、列salaryがリダクションされている場合に、最高額の給与を得ているユーザーを検出するために、侵入者は次の問合せを使用できます:

    SELECT FIRST_NAME, LAST_NAME, SALARY 
    FROM HR.EMPLOYEES 
    WHERE SALARY > 16000 
    ORDER BY SALARY DESC;
    
    FIRST_NAME           LAST_NAME                     SALARY
    -------------------- ------------------------- ----------
    Steven               King                               0
    Neena                Kochhar                            0
    Lex                  De Haan                            0
  • Oracle Data Redactionは、データベースおよびアプリケーションのコンテキスト値に依存します。アプリケーションの場合、コンテキスト値を適切に初期化するのは、アプリケーションの役割です。

  • Oracle Data Redactionは、SYSDBA管理権限を使用してログインしているユーザーには適用されません。

  • データ・リダクション・ポリシーの管理下から実際のデータをコピーしようとする特定のDDL文(つまり、CREATE TABLE AS SELECTINSERT AS SELECT)は、デフォルトでブロックされますが、ユーザーにEXEMPT REDACTION POLICY権限を付与することでこの動作を無効にできます。

  • Oracle Data Redactionは、日常のデータベース操作(バックアップおよびリカバリ、Oracle Data Pumpエクスポート/インポート、Oracle Data Guard操作、レプリケーションなど)には影響しません。

5.1.1 ビューが無効な場合のREDACTION_COLUMNSデータ・ディクショナリ・ビューの動作

Oracle Data Redactionポリシーがビューの列に存在しているときに、そのビューが無効になっても、REDACTION_COLUMNSデータ・ディクショナリ・ビューではデータ・リダクション・ポリシーが参照可能なままになります。

たとえば、ビューは、そのビューのいずれかの列が参照する列が、そのビューが依存する表から削除されると無効になることがあります。

データ・リダクション・ポリシーは表が無効になったときに自動的に削除されることがないため、REDACTION_COLUMNSデータ・ディクショナリ・ビューでは、その列が引き続き参照可能になります。

データ・リダクション・ポリシーを削除するかどうかは、その後でビューが変更されたときに決定されます。

ビューが無効になったときに自動的にデータ・リダクション・ポリシーを削除するのではなく、このアプローチが採用された理由は、間違いが発生しにくいことと、基礎となる表から実際のデータを誤って表示してしまうリスクが少なくなるためです。

ビューの変更時点まで決定を遅らせることで、列が表にリストアされた後でビューを再コンパイルできるようになります。列が表にリストアされてビューが再コンパイルされると、ビューは有効になり、データ・リダクション・ポリシーが引き続き適用されます。

その一方、無効なビュー定義が有効なビュー定義(データ・リダクション・ポリシーが定義されていた列を含まなくなったもの)に置き換えられた場合、その時点でデータ・リダクション・ポリシーは自動的に削除されます。その後で、REDACTION_COLUMNSデータ・ディクショナリ・ビューは列を表示しなくなるように更新されます(その列が新しいビューの定義に含まれなくなったため)。

5.1.2 ごみ箱が有効になっている場合のOracle Data Redactionポリシーの削除

Oracle Data Redactionポリシーを削除する前に、ごみ箱が有効になっているかどうかを確認する必要があります。

ごみ箱機能が有効になっている場合にOracle Data Redactionポリシーが定義されている表またはビューを削除するか、または、ごみ箱を空にする前にREDACTION_COLUMNSまたはREDACTION_POLICIESデータ・ディクショナリ・ビューを問い合せると、BIN$... (BIN$1Xu5PSW5VaPgQxGS5AoAEA==$0など)のオブジェクト名が表示されます。

これは正常な動作です。これらのポリシーは、ごみ箱を空にすると削除されます。

ごみ箱が有効になっているかどうかを確認するには、SQL*PlusのSHOW PARAMETER RECYCLEBINコマンドを実行します。