Data Redactionの有効化・無効化

この記事ではOracle Data Redactionポリシーの有効化、無効化の方法について解説します。

 ポリシーの有効化

作成したリダクションポリシーの有効化は「DBMS_REDACT.ENABLE_POLICY」プロシージャを使用します。

プロシージャの構文は以下の通りです。

DBMS_REDACT.DISABLE_POLICY (
   object_schema       IN VARCHAR2 DEFAULT NULL, 
   object_name         IN VARCHAR2, 
   policy_name         IN VARCHAR2);

それぞれスキーマ名、オブジェクト(表、ビュー)名、ポリシー名を入力します。


 ポリシーの無効化

ポリシーの無効化は「DBMS_REDACT.DISABLE_POLICY」プロシージャを使用します。

プロシージャの構文は以下の通りです。

DBMS_REDACT.DISABLE_POLICY (
   object_schema       IN VARCHAR2 DEFAULT NULL, 
   object_name         IN VARCHAR2, 
   policy_name         IN VARCHAR2);

有効化と同様にそれぞれスキーマ名、オブジェクト(表、ビュー)名、ポリシー名を入力します。


 実行例

まずは対象のポリシーを確認します。

作成済みのRedactionポリシーを確認するには以下のSQLを実行します。

select * from REDACTION_POLICIES;
実行するとポリシーが表示されます。
SQL> select * from REDACTION_POLICIES;
OBJECT_OWNER OBJECT_NAME POLICY_NAME    EXPRESSION ENABLE POLICY_DESCRIPTION
------------ ----------- -------------- ---------- ------ ------------------
TEST         CARD        test_redaction 1=1        YES
 「test_redaction」ポリシーが現在は有効化されているので、これを無効化します。
SQL> BEGIN
  2    DBMS_REDACT.DISABLE_POLICY (
  3      object_schema  => 'TEST',
  4      object_name    => 'CARD',
  5      policy_name    => 'test_redaction');
  6  END;
  7  /
PL/SQLプロシージャが正常に完了しました。

無効化されたかを確認します。

SQL> select * from REDACTION_POLICIES;
OBJECT_OWNER OBJECT_NAME POLICY_NAME    EXPRESSION ENABLE POLICY_DESCRIPTION
------------ ----------- -------------- ---------- ------ ------------------
TEST         CARD        test_redaction 1=1        NO

「ENABLE」列が「NO」に変わり、無効化されていることが確認できました。

有効化も流れは同じになります。