この記事では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」に変わり、無効化されていることが確認できました。
有効化も流れは同じになります。