146 DBMS_REDACT

DBMS_REDACTパッケージは、権限の低いユーザーやアプリケーションによって発行された問合せから戻されるデータをリダクションできる、Oracle Data Redactionへのインタフェースを提供します。

この章のトピックは、次のとおりです:

参照:

146.1 DBMS_REDACTの概要

データ・リダクションを使用すると、アプリケーションのリダクション・ポリシーを定義できます。Oracle Data Redactionには、アプリケーション内でユーザーのSELECT問合せから戻されるデータをリダクションするための機能があります。リダクションはリアルタイムで実施されます。データ・リダクション・ポリシーは、問合せ元のユーザーのSYS_CONTEXTまたはXS_SYS_CONTEXTの値に応じて、そのユーザーに適用されます。このリダクション・プロセスでは、問合せ対象のデータが静的または不変である必要はなく、データ・セット全体をオフラインで同時にリダクションする必要もありません。Oracle Databaseでは、エントリ列のデータではなく、ユーザーの問合せで指定された行のデータのみがリダクションされます。リダクションは、データが問合せ元のユーザーまたはアプリケーションに戻される直前に発生します。

146.2 DBMS_REDACTのセキュリティ・モデル

問合せ元のユーザーにEXEMPT REDACTION POLICYシステム権限が付与されている場合、リダクションは実行されません。問合せ元のユーザーにEXEMPT REDACTION POLICYシステム権限が付与されていない場合、現行ユーザーの環境内で、ポリシーの式が評価されます。ポリシーの式がTRUEと評価された場合はリダクションが実行され、そうでない場合は実行されません。

DBMS_REDACTパッケージのサブプログラムを実行するには、そのパッケージに対するEXECUTE権限と、ADMINISTER REDACTION POLICYシステムまたはスキーマ権限が必要です。インタフェースに含まれるプロシージャは、現在のユーザーの権限で実行されます。

DBMS_REDACTパッケージのサブプログラムを実行するための、そのパッケージのEXECUTE権限に加え、次の権限が必要です。

  • データ・リダクション・ポリシーが自分のスキーマ内のオブジェクトにある場合は、CREATE TABLEまたはCREATE ANY TABLE権限。この要件は、次のプロシージャに適用されます。
    • DBMS_REDACT.ADD_POLICY
    • DBMS_REDACT.DROP_POLICY
    • DBMS_REDACT.ALTER_POLICY
    • DBMS_REDACT.DISABLE_POLICY
    • DBMS_REDACT.ENABLE_POLICY
    • DBMS_REDACT.APPLY_POLICY_EXPR_TO_COL
  • データ・リダクション・ポリシーが別のユーザーのスキーマ内のオブジェクトにある場合は、CREATE ANY TABLE権限。この要件は、次のプロシージャに適用されます。
    • DBMS_REDACT.UPDATE_FULL_REDACTION_VALUES
    • DBMS_REDACT.CREATE_POLICY_EXPRESSION
    • DBMS_REDACT.DROP_POLICY_EXPRESSION
    • DBMS_REDACT.UPDATE_POLICY_EXPRESSION

146.3 DBMS_REDACTの定数

DBMS_REDACTパッケージは、パラメータ値の指定に使用するいくつかの定数を定義します。

表146-1 DBMS_REDACT.ADD_POLICYのfunction_typeパラメータの値

定数 タイプ 説明

NONE

0

BINARY_INTEGER

リダクションなし。

FULL

1

BINARY_INTEGER

固定値へのリダクション。

NULLIFY

6

BINARY_INTEGER

リダクションされた値としてNULL値を戻します。

PARTIAL

2

BINARY_INTEGER

部分的なリダクション。列データの一部をリダクションします。

RANDOM

4

BINARY_INTEGER

ランダム・リダクション。各問合せの結果は、異なるランダムな値になります。

REGEXP

5

BINARY_INTEGER

正規表現ベースのリダクション。

REGEXP_WIDTH

7

BINARY_INTEGER

正規表現を使用して列の幅を保持する正規表現に基づいたリダクション。Oracle OLE DBプロバイダ・インタフェースのOCI_ATTR_CHAR_SIZE属性を使用するアプリケーション向けに設計されています

表146-2 DBMS_REDACT.ALTER_POLICYのactionパラメータの値

定数 タイプ 説明

ADD_COLUMN

1

BINARY_INTEGER

リダクション・ポリシーに列を追加します。

DROP_COLUMN

2

BINARY_INTEGER

リダクション・ポリシーから列を削除します。

MODIFY_EXPRESSION

3

BINARY_INTEGER

リダクション・ポリシーの式を変更します(この式はBOOLEAN値に評価されます。TRUEの場合はリダクションが適用され、そうでない場合は適用されません)。

MODIFY_COLUMN

4

BINARY_INTEGER

リダクション・ポリシーに含まれる列を変更することによって、リダクションのfunction_typeまたはfunction_parametersを変更します。

SET_POLICY_DESCRIPTION

5

BINARY_INTEGER

リダクション・ポリシーの説明を設定します。

SET_COLUMN_DESCRIPTION

6

BINARY_INTEGER

列に対して実行されるリダクションの説明を設定します。

146.4 DBMS_REDACTのプロシージャの使用

次の表に、リダクションする列のデータ・タイプに基づく、リダクション・ファンクションのタイプとそのパラメータの関係を示します。様々な書式文字列の例を提供することによって、文字列データ・タイプ(この場合は社会保障番号(SSN))やDATEデータ・タイプに対していくつかの一般的なリダクションを実行する方法を示します。また、数値データ・タイプに対するリダクションの様々な例も提供します。

表146-3 データ・リダクション・ファンクションのタイプ

function_type function_parameters

DBMS_REDACT.NONE

-

-

DBMS_REDACT.FULL

-

-

DBMS_REDACT.NULLIFY

-

-

DBMS_REDACT.PARTIAL (文字型用)

次の5つのフィールドを含むカンマ区切りリスト(フィールドを区切るカンマの後にはスペースを入れません)。

  • REDACT_PARTIAL_INPUT_FORMAT

  • REDACT_PARTIAL_OUTPUT_FORMAT

  • REDACT_PARTIAL_MASKCHAR

  • REDACT_PARTIAL_MASKFROM

  • REDACT_PARTIAL_MASKTO

表146-4を参照してください。

'VVVFVVFVVVV,VVV-VV-VVVV,X,1,5'は、123-45-6789のようなSSN文字列の最初の5桁をリダクションし、ダッシュを戻して書式設定し、XXX-XX-6789のような文字列にします

'VVVFVVFVVVV,VVV VV VVVV,X,1,5'は、123-45-6789のようなSSN文字列の最初の5桁をマスクし、スペースを追加して書式設定し、XXX XX 6789のような文字列にします

DBMS_REDACT.PARTIAL (文字型用)、続き

REDACT_PARTIAL_INPUT_FORMAT - 入力形式: 値をリダクションする可能性がある場合はV、書式文字を無視する場合はFを指定します。

REDACT_PARTIAL_INPUT_FORMATのフィールド値VVVFVVFVVVVは、123-45-6789のようなSSN文字列に一致します。

DBMS_REDACT.PARTIAL (文字型用)、続き

REDACT_PARTIAL_OUTPUT_FORMAT - 出力形式: リダクションの出力にはVを指定します。その他の文字はすべて書式文字として処理され、文字どおりに出力されます。

REDACT_PARTIAL_OUTPUT_FORMATフィールドの値VVV-VV-VVVVは、SSN文字列を XXX-XX-6789にリダクションするために使用できます(Xは、REDACT_PARTIAL_MASKCHARフィールドから得られます)。

DBMS_REDACT.PARTIAL (文字型用)、続き

REDACT_PARTIAL_MASKCHAR - 入力のリダクションに使用する文字。

X。SSN文字列をXXX-XX-6789にリダクションします。

DBMS_REDACT.PARTIAL (文字型用)、続き

REDACT_PARTIAL_MASKFROM - REDACT_PARTIAL_INPUT_FORMAT内のどのVからリダクションを開始するかを指定します(次の項目REDACT_PARTIAL_MASKTOの説明を参照)。

1REDACT_PARTIAL_INPUT_FORMATの値VVVFVVFVVVVの最初のVから始まるSSN文字列をXXX-XX-6789のような文字列にリダクションします。

DBMS_REDACT.PARTIAL (文字型用)、続き

REDACT_PARTIAL_MASKTO - REDACT_PARTIAL_INPUT_FORMAT内のどのVでリダクションを終了するかを指定します。

5REDACT_PARTIAL_INPUT_FORMATの値VVVFVVFVVVVの5番目のVまでのSSN文字列をXXX-XX-6789のような文字列にリダクションします。リダクションという点から、書式文字'-' (REDACT_PARTIAL_INPUT_FORMAT内の最初のFに対応します)がどのように無視されるかに注目してください。これが6ではなく5を値に使用する理由です。

DBMS_REDACT.PARTIAL (文字型用)、続き

REDACT_PARTIAL_MASKFROMおよびREDACT_PARTIAL_MASKTOフィールドの値は、REDACT_PARTIAL_INPUT_FORMATフィールドに含まれる文字Vの数(左端のVから目的の位置まで)として指定されます。これにより、REDACT_PARTIAL_MASKFROMREDACT_PARTIAL_MASKTOは、データの特定の書式に依存しなくなります。たとえば、SSNをリダクションして最後の4桁のみを表示する一般的な使用例において、123456789のようなデータ(REDACT_PARTIAL_INPUT_FORMATVVVVVVVVV)と123-45-6789のようなデータ(REDACT_PARTIAL_INPUT_FORMATVVVFVVFVVVV)は、どちらもREDACT_PARTIAL_MASKFROM1REDACT_PARTIAL_MASKTO5を使用することが考えられます。

-

DBMS_REDACT.PARTIAL(数値型用)

次の3つのフィールドを含むカンマ区切りリスト(フィールドを区切るカンマの後にはスペースを入れません)。

  • REDACT_PARTIAL_MASKCHAR

  • REDACT_PARTIAL_MASKFROM

  • REDACT_PARTIAL_MASKTO

表146-4を参照してください。

'9,1,5'はSSN番号123456789の最初の5桁を999996789にリダクションし、'0,1,2'は数値1.230.03にリダクションします。

DBMS_REDACT.PARTIAL (数値型用)、続き

REDACT_PARTIAL_MASKCHAR - 入力のリダクションに使用する文字(0から9)。

REDACT_PARTIAL_MASKFROM - リダクションの開始位置(1以上)。小数点は、存在しても位置には含まれません。

REDACT_PARTIAL_MASKTO - リダクションの終了位置。

-

DBMS_REDACT.PARTIAL (日時データ・タイプの場合)

次の5つのフィールドを含むリスト(フィールド間にスペースが入らないように連結されます)。

  • REDACT_PARTIAL_DATE_MONTH

  • REDACT_PARTIAL_DATE_DAY

  • REDACT_PARTIAL_DATE_YEAR

  • REDACT_PARTIAL_DATE_HOUR

  • REDACT_PARTIAL_DATE_MINUTE

  • REDACT_PARTIAL_DATE_SECOND

表146-4を参照してください。

'm12DYHMS'01-May-01 01:01:0101-Dec-01 01:01:01に変更します。

DBMS_REDACT.PARTIAL (日時データ・タイプの場合)、続き

REDACT_PARTIAL_DATE_MONTH: 'M' (月のリダクションなし)または 'm#' (可能な場合は月を特定の月にリダクションする)。# (数字によって指定する月)は1から12

REDACT_PARTIAL_DATE_DAY: 'D' (日のリダクションなし)または'd#' (可能な場合は日を#にリダクションする)。#1から31

REDACT_PARTIAL_DATE_YEAR: 'Y' (年のリダクションなし)または'y#' (可能な場合は年を#にリダクションする)。#1から9999

REDACT_PARTIAL_DATE_HOUR: 'H' (時間のリダクションなし)または'h#' (可能な場合は時間を#にリダクションする)。#0から23

REDACT_PARTIAL_DATE_MINUTE: 'M' (分のリダクションなし)または'm#' (可能な場合は分を#にリダクションする)。#0から59

REDACT_PARTIAL_DATE_SECOND: 'S' (秒のリダクションなし)または's#' (可能な場合は秒を#にリダクションする)。#0から59

-

DBMS_REDACT.REGEXP

-

-

DBMS_REDACT.REGEXP_WIDTH

-

-

DBMS_REDACT.RANDOM

-

-

表146-4 書式記述子と構成要素のフィールド名およびデリミタ

データ・タイプ 部分リダクション用の書式記述子

文字

REDACT_PARTIAL_INPUT_FORMAT || ',' || REDACT_PARTIAL_OUTPUT_FORMAT || ',' || REDACT_PARTIAL_MASKCHAR || ',' || REDACT_PARTIAL_MASKFROM || ',' || REDACT_PARTIAL_MASKTO

数値

REDACT_PARTIAL_MASKCHAR || ',' || REDACT_PARTIAL_MASKFROM || ',' || REDACT_PARTIAL_MASKTO

日時

REDACT_PARTIAL_DATE_MONTH || REDACT_PARTIAL_DATE_DAY || REDACT_PARTIAL_DATE_YEAR || REDACT_PARTIAL_DATE_HOUR || REDACT_PARTIAL_DATE_MINUTE || REDACT_PARTIAL_DATE_SECOND

146.5 DBMS_REDACTサブプログラムの要約

この表では、DBMS_REDACTパッケージのサブプログラムをリストし、簡単に説明します。

表146-5 DBMS_REDACTパッケージのサブプログラム

サブプログラム 説明

ADD_POLICYプロシージャ

表またはビューのデータ・リダクション・ポリシーを定義します。

ALTER_POLICYプロシージャ

表またはビューのデータ・リダクション・ポリシーを変更します。

APPLY_POLICY_EXPR_TO_COLプロシージャ

名前付きデータ・リダクション・ポリシー式をリダクションされる列に適用します。

CREATE_POLICY_EXPRESSIONプロシージャ

名前付きデータ・リダクション・ポリシー式を作成します

DISABLE_POLICYプロシージャ

データ・リダクション・ポリシーを無効化します

DROP_POLICYプロシージャ

データ・リダクション・ポリシーを削除します

DROP_POLICY_EXPRESSIONプロシージャ

名前付きデータ・リダクション・ポリシー式を削除します

ENABLE_POLICYプロシージャ

データ・リダクション・ポリシーを有効化します

UPDATE_FULL_REDACTION_VALUESプロシージャ

完全リダクションのデータ・リダクション・ポリシーでデフォルトで表示される値を変更します。

UPDATE_POLICY_EXPRESSIONプロシージャ

名前付きデータ・リダクション・ポリシー式を更新します

146.5.1 ADD_POLICYプロシージャ

このプロシージャは、表またはビューのデータ・リダクション・ポリシーを定義します。

構文

DBMS_REDACT.ADD_POLICY (
   object_schema                IN    VARCHAR2 := NULL,
   object_name                  IN    VARCHAR2,
   policy_name                  IN    VARCHAR2,
   column_name                  IN    VARCHAR2 := NULL,
   function_type                IN    BINARY_INTEGER := DBMS_REDACT.FULL,
   function_parameters          IN    VARCHAR2 := NULL,
   expression                   IN    VARCHAR2,
   enable                       IN    BOOLEAN := TRUE,
   regexp_pattern               IN    VARCHAR2 := NULL,
   regexp_replace_string        IN    VARCHAR2 := NULL,
   regexp_position              IN    BINARY_INTEGER := 1,
   regexp_occurrence            IN    BINARY_INTEGER := 0,
   regexp_match_parameter       IN    VARCHAR2 := NULL,
   policy_description           IN    VARCHAR2 := NULL,
   column_description           IN    VARCHAR2 := NULL);

パラメータ

表146-6 ADD_POLICYプロシージャのパラメータ

パラメータ 説明

object_schema

表またはビューを所有するスキーマ。NULLの場合は現行ユーザーになります。

object_name

データ・リダクション・ポリシーを追加する表またはビューの名前

policy_name

ポリシー名。

column_name

[オプション] リダクション・ポリシーを適用する列の名前。複数の列をリダクションする必要がある場合は、ALTER_POLICYプロシージャを使用して列を追加します。

function_type

使用するリダクション・ファンクションのタイプ。使用可能な値は次のとおりです。

- DBMS_REDACT.NONE

- DBMS_REDACT.FULL (デフォルト)

- DBMS_REDACT.NULLIFY

- DBMS_REDACT.PARTIAL

- DBMS_REDACT.RANDOM

- DBMS_REDACT.REGEXP

- DBMS_REDACT.REGEXP_WIDTH

function_typeDBMS_REDACT.REGEXPまたはDBMS_REDACT.REGEXP_WIDTHの場合は、function_parametersパラメータを省略し、regexp_*パラメータを使用してデータ・リダクション・ポリシーを定義する必要があります。

これらの値の意味の概要と使用例は、表146-1を参照してください。

function_parameters

リダクション・ファンクションのパラメータ。指定できる値は、提供されたfunction_typeの値によって異なります。

function_typeDBMS_REDACT.REGEXPまたはDBMS_REDACT.REGEXP_WIDTHの場合は、function_parametersパラメータを省略し、regexp_*パラメータを使用してデータ・リダクション・ポリシーを定義する必要があります。

- DBMS_REDACT.NONE: 全体として省略可能で、デフォルトはNULLです。

- DBMS_REDACT.FULL: 全体として省略可能で、デフォルトはNULLです。

- 部分文字リダクションのリダクション・パラメータ。文字データ・タイプの場合、カンマ区切りリストには次のフィールドが含まれます。

  • 入力形式: 'V'はリダクション可能な値、'F'は無視する書式設定文字

  • 出力形式: 'V'はリダクションの出力。その他の文字は書式設定文字として処理されます。

  • リダクション文字: 実際の値の置換えに使用する文字。たとえば、'*''x'があります。

  • 開始桁の位置: 実際の値をリダクション文字に置き換える処理の開始(文字)位置を指定します。文字列は位置1から始まります。書式文字は位置に含まれません。

  • 終了桁の位置: リダクションの終了(文字)位置を指定します。たとえば、'VVVFVVFVVVV,VVV-VV-VVVV,X,1,5'は、SSN文字列123-45-6789の最初の5桁をリダクションし、ダッシュを戻してSSNのように書式設定し、XXX-XX-6789にします。

数値データ・タイプの場合、カンマ区切りリストには次のフィールドが含まれます。

  • リダクション文字: 実際の値の置換えに使用する、'0'から'9'の文字。

  • 開始桁の位置: 実際の値をリダクション文字に置き換える処理の開始(桁)位置を指定します。文字列は位置1から始まります。小数点は位置に含まれません。

  • 終了桁の位置: マスキングの終了桁位置を指定します。たとえば'9,1,5'は、社会保障番号123456789の最初の5桁をリダクションして、999996789にします。

日時データ・タイプの場合、この書式は、次の一連のフィールドを含む、間にスペースやカンマがない文字列になります。各フィールドは1つ以上の文字から構成され、フィールドの長さはリダクションが必要であるかどうかによって異なります。1文字のフィールドは、日時値のその構成要素のリダクションは発生しないことを指定するために使用されます。それよりも長いフィールドは、日時値のその構成要素をリダクションした後の値として使用する、特定の時間または日付を示します。

  • 月: 'M' (月のリダクションなし)または'm#' (可能な場合は月を特定の月にリダクションする)。# (数字で指定する月)は1から12

  • 日: 'D' (日のリダクションなし)または'd#' (可能な場合は日を#にリダクションする)。#1から31

  • 年: 'Y' (年のリダクションなし)または'y#'(可能な場合は年を#にリダクションする)。#1から9999

  • 時間: 'H' (時間のリダクションなし)または'h#' (可能な場合は時間を#にリダクションする)。#0から23

  • 分: 'M' (分のリダクションなし)または'm#' (可能な場合は分を#にリダクションする)。#0から59

  • 秒: 'S' (秒のリダクションなし)または's#' (可能な場合は秒を#にリダクションする)。#0から59

たとえば、'm12d1y2001h1m1s1'では、02-May-13 12:30:23から01-Dec-01 01:01:01に変更されます。

部分文字と数字リダクション・ショートカットの詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

expression

表またはビューのデフォルトのブール式。この式を使用する場合、リダクションは、ポリシー式がTRUEと評価された場合にのみ実行されます。

次のファンクションがサポートされています。

  • SYS_CONTEXT

  • XS_SYS_CONTEXT

  • SUBSTRファンクション(SUBSTRBSUBSTRCSUBSTR2SUBSTR4を含む)

  • LENGTHファンクション(LENGTHBLENGTHCLENGTH2LENGTH4を含む)

  • V (APEX_UTIL.GET_SESSION_STATE)

  • NV (APEX_UTIL.GET_NUMERIC_SESSION_STATE)

  • OLS_LABEL_DOMINATES

  • DOMINATES

  • OLS_DOMINATES

  • OLS_DOM

  • DOM

  • OLS_STRICTLY_DOMINATES

  • STRICTLY_DOMINATES

  • S_DOM

  • SA_UTL.DOMINATES

  • SA_UTL.CHECK_READ

  • SA_UTL.NUMERIC_LABEL

  • CHAR_TO_LABEL

  • SA_SESSION.LABEL

これらのサポートされているファンクションの詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

enable

データ・リダクション・ポリシーを作成時に有効にするかどうかを決定するブール値。

デフォルト値のTRUEは、ポリシーが作成時に自動的に有効になることを意味します。enableパラメータをFALSEに設定した場合、ポリシーが有効になるのは、その後DBMS_REDACT.ENABLE_POLICYプロシージャをコールしてそのポリシーを有効にした場合のみです。

regexp_pattern

最大512バイトの正規表現パターン。

function_typeパラメータがDBMS_REDACT.REGEXPの場合のみ使用します。function_typeDBMS_REDACT.REGEXPの場合、function_parametersパラメータは指定しないでください。

正規表現パターンの使用およびその例については、『Oracle Database SQL言語リファレンス』を参照してください。

regexp_replace_string

この置換文字列(最大4000文字)には、最大500個の部分正規表現への後方参照を\nという書式で指定できます。nは、1から9の数値です。

function_typeパラメータがDBMS_REDACT.REGEXPの場合のみ使用します。

regexp_position

1から始まる整数。検索の開始位置を指定します。デフォルトは1です。

function_typeパラメータがDBMS_REDACT.REGEXPの場合のみ使用します。

regexp_occurrence

  • 一致するすべての文字を置き換えるには、0を使用します。デフォルトは0です。

  • n番目に一致する文字を置き換えるには、正の整数nを使用します。

function_typeパラメータがDBMS_REDACT.REGEXPの場合のみ使用します。

regexp_match_parameter

デフォルトの一致動作を変更します。'i'、'c'、'n'、'm'、'x'を組み合せた値を指定できます。

function_typeパラメータがDBMS_REDACT.REGEXPの場合のみ使用します。

正規表現一致パラメータの使用およびその例については、『Oracle Database SQL言語リファレンス』を参照してください。

policy_description

リダクション・ポリシーの説明です。

column_description

リダクションされた列の説明です。

例外

  • ORA-28060 - この列には、すでにデータ・リダクション・ポリシーが存在します。

  • ORA-28061 - このオブジェクトには、データ・リダクション・ポリシーを定義できません。

  • ORA-28062 - ポリシー式が長すぎます。

  • ORA-28063 - ポリシー式が空です。

  • ORA-28064 - リダクション機能が無効です。

  • ORA-28066 - 列columnは無効です。

  • ORA-28067 - 列名がないか無効です

  • ORA-28069 - このオブジェクトには、すでにデータ・リダクション・ポリシーが存在します。

  • ORA-28073 - 列column_nameにサポートされていないデータ型または属性があります。

  • ORA-28074 - リダクション・パラメータのfield_nameフィールドが無効です。

    このフィールドには、次のいずれかを指定できます。

    • REDACT_PARTIAL_INPUT_FORMAT

    • REDACT_PARTIAL_OUTPUT_FORMAT

    • REDACT_PARTIAL_MASKCHAR

    • REDACT_PARTIAL_MASKFROM

    • REDACT_PARTIAL_MASKTO

    • REDACT_PARTIAL_DATE_MONTH

    • REDACT_PARTIAL_DATE_DAY

    • REDACT_PARTIAL_DATE_YEAR

    • REDACT_PARTIAL_DATE_HOUR

    • REDACT_PARTIAL_DATE_MINUTE

    • REDACT_PARTIAL_DATE_SECOND

    フィールド・コンテンツとフィールド順序の例は、表146-3表146-4を参照してください。

  • ORA-28075 - データ・リダクション・ポリシー式にエラーがあります。

  • ORA-28076 - SYS_SESSION_ROLES属性として空のロール名が指定されました。

  • ORA-28077 - SYS_SESSION_ROLESに指定したロール名role_nameが最大長を超えています。

  • ORA-28078 - 正規表現パラメータがないか無効です。

  • ORA-28082 - パラメータparameterは無効です(ここで使用可能な値は、function_parameterscolumn_descriptionpolicy_nameおよびpolicy_descriptionです)。

  • ORA-28085 - リダクションの入力と出力の長さが一致しません。

  • ORA-28092 - 値valueのパラメータparam_nameにエラーがあります。

  • ORA-28097 - データ・リダクション・ポリシーはSYSが所有するオブジェクトには適用できません。

  • ORA-28104 - parameterの入力値が無効です。

使用上のノート

このプロシージャに必要な権限のリストは、「DBMS_REDACTのセキュリティ・モデル」を参照してください。

ファンクション・タイプとファンクション・パラメータ、およびそれに関連する例については、「プロシージャの使用」を参照してください。

リダクションされた列に適用された名前付きデータ・リダクション・ポリシー式は、expressionパラメータで定義された式より優先されます。名前付きポリシー式の影響を受けるリダクションされた列を検索するには、REDACTION_EXPRESSIONSデータ・ディクショナリ・ビューを問い合せます。

部分リダクション・ポリシー:

BEGIN
   DBMS_REDACT.ADD_POLICY(
     object_schema        => 'hr',
     object_name          => 'employees',
     column_name          => 'employee_id',
     policy_name          => 'redact_emp_id_nums',
     function_type        => DBMS_REDACT.PARTIAL,
     function_parameters  => '7,1,5',
     expression           => '1=1');
END;

完全リダクション・ポリシー:

BEGIN
   DBMS_REDACT.ADD_POLICY(
     object_schema        => 'hr',
     object_name          => 'employees',
     column_name          => 'employee_id',
     policy_name          => 'redact_emp_ids',
     function_type        => DBMS_REDACT.FULL,
     expression           => 'SYS_CONTEXT(''SYS_SESSION_ROLES'',''CLERK'') 
                                                                    = ''FALSE''');
END;

146.5.2 ALTER_POLICYプロシージャ

このプロシージャは、表またはビューの既存のデータ・リダクション・ポリシーを変更します。

次の1つ以上の方法でポリシーを変更します。

  • ポリシーの式の変更。

  • 指定した列のリダクション・タイプの変更。

  • 指定した列のリダクション・ファンクションのパラメータの変更。

  • リダクション・ポリシーへの列の追加(リダクション・タイプと任意のパラメータを指定する必要がある)。

  • リダクション・ポリシーからの列の削除。

  • ポリシーの説明の変更

  • 列の説明の変更

構文

DBMS_REDACT.ALTER_POLICY (
   object_schema                IN    VARCHAR2 := NULL,
   object_name                  IN    VARCHAR2,
   policy_name                  IN    VARCHAR2,
   action                       IN    BINARY_INTEGER := DBMS_REDACT.ADD_COLUMN,
   column_name                  IN    VARCHAR2 := NULL,
   function_type                IN    BINARY_INTEGER := DBMS_REDACT.FULL,
   function_parameters          IN    VARCHAR2 := NULL,
   expression                   IN    VARCHAR2,
   regexp_pattern               IN    VARCHAR2 := NULL,
   regexp_replace_string        IN    VARCHAR2 := NULL,
   regexp_position              IN    BINARY_INTEGER := 1,
   regexp_occurrence            IN    BINARY_INTEGER := 0,
   regexp_match_parameter       IN    VARCHAR2 := NULL,
   policy_description           IN    VARCHAR2 := NULL,
   column_description           IN    VARCHAR2 := NULL);

パラメータ

表146-7 ALTER_POLICYプロシージャのパラメータ

パラメータ 説明

object_schema

表またはビューを所有するスキーマ。NULLの場合は現行ユーザーになります。

object_name

データ・リダクション・ポリシーを変更する表またはビューの名前

policy_name

30バイトに制限されているポリシーの名前です。

action

実行するアクション。詳細は、表146-2を参照してください。

column_name

(オプション) リダクション・ポリシーを適用する列の名前。次のアクションで必要になります:

  • add_column
  • drop_column
  • modify_column
  • set_column_description

function_type

使用するリダクション・ファンクションのタイプ。使用可能な値は次のとおりです。

- DBMS_REDACT.NONE

- DBMS_REDACT.FULL (デフォルト)

- DBMS_REDACT.NULLIY

- DBMS_REDACT.PARTIAL

- DBMS_REDACT.RANDOM

- DBMS_REDACT.REGEXP

- DBMS_REDACT.REGEXP_WIDTH

function_typeDBMS_REDACT.REGEXPまたはDBMS_REDACT.REGEXP_WIDTHの場合は、function_parametersパラメータを省略し、regexp_patternregexp_replace_stringregexp_positionregexp_occurrenceおよびregexp_match_parameterを使用してデータ・リダクション・ポリシーを定義する必要があります。

これらの値の意味の概要と使用例は、表146-1を参照してください。

function_parameters

リダクション・ファンクションのパラメータ。function_typeがDBMS_REDACT.PARTIALの場合にのみ使用します。

function_typeDBMS_REDACT.REGEXPまたはDBMS_REDACT.REGEXP_WIDTHの場合は、function_parametersパラメータを省略し、regexp_patternregexp_replace_stringregexp_positionregexp_occurrenceおよびregexp_match_parameterを使用してデータ・リダクション・ポリシーを定義する必要があります。

- function_typeDBMS_REDACT.NONEまたはDBMS_REDACT.NULLIFYの場合は、function_parametersパラメータを省略する必要があります。

- function_typeDBMS_REDACT.FULLの場合は、function_parametersパラメータを省略する必要があります。

- function_typeDBMS_REDACT.PARTIALの場合は、function_parametersパラメータは部分リダクションのリダクション・パラメータを表します。

  • 入力形式: 'V'はリダクション可能な値、'F'は無視する書式設定文字

  • 出力形式: 'V'はリダクションの出力。その他の文字は書式設定文字として処理されます

  • リダクション文字: 実際の値の置換えに使用する文字。たとえば、'*''x'があります

  • 開始桁の位置: 実際の値をリダクション文字に置き換える処理の開始(文字)位置を指定します。文字列は位置1から始まります。書式文字は位置に含まれません。

  • 終了桁の位置: リダクションの終了(文字)位置を指定します。たとえば、'VVVFVVFVVVV,VVV-VV-VVVV,X,1,5'は、SSN文字列123-45-6789の最初の5桁をリダクションし、ダッシュを戻してSSNのように書式設定し、XXX-XX-6789にします。

数値データ・タイプの場合、カンマ区切りリストには次のフィールドが含まれます。

  • リダクション文字: 実際の値の置換えに使用する、'0'から'9'の文字。

  • 開始桁の位置: 実際の値をリダクション文字に置き換える処理の開始(桁)位置を指定します。文字列は位置1から始まります。小数点は位置に含まれません。

  • 終了桁の位置: マスキングの終了桁位置を指定します。たとえば'9,1,5'は、社会保障番号123456789の最初の5桁をリダクションして、999996789にします。

日時データ・タイプの場合、この書式は、次の一連のフィールドを含む、間にスペースやカンマがない文字列になります。各フィールドは1つ以上の文字から構成され、フィールドの長さはリダクションが必要であるかどうかによって異なります。1文字のフィールドは、日時値のその構成要素のリダクションは発生しないことを指定するために使用されます。それよりも長いフィールドは、日時値のその構成要素をリダクションした後の値として使用する、特定の時間または日付を示します。

  • 月: 'M' (月のリダクションなし)または'm#' (可能な場合は月を特定の月にリダクションする)。# (数字で指定する月)は1から12

  • 日: 'D' (日付のリダクションなし)または'd#' (可能な場合は日を#にリダクションする)。#1から31

  • 年: 'Y' (年のリダクションなし)または'y#'(可能な場合は年を#にリダクションする)。#1から9999

  • 時間: 'H' (時間のリダクションなし)または'h#' (可能な場合は時間を#にリダクションする)。#0から23

  • 分: 'M' (分のリダクションなし)または'm#' (可能な場合は分を#にリダクションする)。#0から59

  • 秒: 'S' (秒のリダクションなし)または's#' (可能な場合は秒を#にリダクションする)。#0から59

たとえば、'm12DYHMS'では、01-May-01 01:01:01から01-Dec-01 01:01:01に変更されます。

部分文字と数字リダクション・ショートカットの詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

expression

表またはビューのデフォルトのブール式。この式を使用する場合、リダクションは、ポリシー式がTRUEと評価された場合にのみ実行されます。

次のファンクションがサポートされています。

  • SYS_CONTEXT

  • XS_SYS_CONTEXT (『Oracle Database Advanced Securityガイド』を参照

  • NV (APEX_UTIL.GET_NUMERIC_SESSION_STATE)

  • V (APEX_UTIL.GET_SESSION_STATE)

  • OLS_LABEL_DOMINATES

  • DOMINATES

  • OLS_DOMINATES

  • OLS_DOM

  • DOM

  • OLS_STRICTLY_DOMINATES

  • STRICTLY_DOMINATES

  • S_DOM

  • SA_UTL.DOMINATES

  • SA_UTL.CHECK_READ

  • SA_UTL.NUMERIC_LABEL

  • CHAR_TO_LABEL

  • SA_SESSION.LABEL

regexp_pattern

最大512バイトの正規表現パターン。

function_typeパラメータがDBMS_REDACT.REGEXPの場合のみ使用します。function_typeDBMS_REDACT.REGEXPの場合、function_parametersパラメータは指定しないでください。

正規表現パターンの使用およびその例については、『Oracle Database SQL言語リファレンス』を参照してください。

regexp_replace_string

この置換文字列(最大4000文字)には、最大500個の部分正規表現への後方参照を\nという書式で指定できます。nは、1から9の数値です。

function_typeパラメータがDBMS_REDACT.REGEXPの場合のみ使用します。

regexp_position

1から始まる整数。検索の開始位置を指定します。

function_typeパラメータがDBMS_REDACT.REGEXPの場合のみ使用します。デフォルトは1です。

regexp_occurrence

  • 一致するすべての文字を置き換えるには、0を使用します。デフォルトは0です。

  • n番目に一致する文字を置き換えるには、正の整数nを使用します。

function_typeパラメータがDBMS_REDACT.REGEXPの場合のみ使用します。

regexp_match_parameter

デフォルトの一致動作を変更します。'i'、'c'、'ic'、'iq'、'n'、'm'、'x'を組み合せた値を指定できます

function_typeパラメータがDBMS_REDACT.REGEXPの場合のみ使用します。

正規表現一致パラメータの使用およびその例については、『Oracle Database SQL言語リファレンス』を参照してください。

policy_description

リダクション・ポリシーの説明です。

column_description

リダクションされた列の説明です。

例外

  • ORA-28060 - この列には、すでにデータ・リダクション・ポリシーが存在します。

  • ORA-28061 - このオブジェクトには、データ・リダクション・ポリシーを定義できません。

  • ORA-28062 - ポリシー式が長すぎます。

  • ORA-28063 - ポリシー式が空です。

  • ORA-28064 - リダクション機能が無効です。

  • ORA-28066 - 列columnは無効です。

  • ORA-28067 - 列名がないか無効です

  • ORA-28068 - オブジェクト"object"には、データ・リダクション・ポリシーがありません。

  • ORA-28069 - このオブジェクトには、すでにデータ・リダクション・ポリシーが存在します。

  • ORA-28070 - 列"column"には、データ・リダクション・ポリシーがありません。

  • ORA-28071 - アクションが無効です。

  • ORA-28072 - 指定されたポリシー名が正しくありません。

  • ORA-28073 - 列column_nameにサポートされていないデータ型または属性があります。

  • ORA-28074 - リダクション・パラメータのfield_nameフィールドが無効です。

    このフィールドには、次のいずれかを指定できます。

    • REDACT_PARTIAL_INPUT_FORMAT

    • REDACT_PARTIAL_OUTPUT_FORMAT

    • REDACT_PARTIAL_MASKCHAR

    • REDACT_PARTIAL_MASKFROM

    • REDACT_PARTIAL_MASKTO

    • REDACT_PARTIAL_DATE_MONTH

    • REDACT_PARTIAL_DATE_DAY

    • REDACT_PARTIAL_DATE_YEAR

    • REDACT_PARTIAL_DATE_HOUR

    • REDACT_PARTIAL_DATE_MINUTE

    • REDACT_PARTIAL_DATE_SECOND

    フィールド・コンテンツとフィールド順序の例は、表146-3表146-4を参照してください。

  • ORA-28075 - データ・リダクション・ポリシー式にエラーがあります。

  • ORA-28076 - SYS_SESSION_ROLES属性として空のロール名が指定されました。

  • ORA-28077 - SYS_SESSION_ROLESに指定したロール名role_nameが最大長を超えています。

  • ORA-28078 - 正規表現パラメータがないか無効です。

  • ORA-28082 - パラメータparameterは無効です(ここで使用可能な値は、function_parameterscolumn_descriptionpolicy_nameおよびpolicy_descriptionです)。

  • ORA-28085 - リダクションの入力と出力の長さが一致しません。

  • ORA-28092 - 値valueのパラメータparam_nameにエラーがあります。

  • ORA-28097 - データ・リダクション・ポリシーはSYSが所有するオブジェクトには適用できません。

  • ORA-28104 - parameterの入力値が無効です。

使用上のノート

このプロシージャに必要な権限のリストは、「DBMS_REDACTのセキュリティ・モデル」を参照してください。

ファンクション・タイプとファンクション・パラメータ、およびそれに関連する例については、「プロシージャの使用」を参照してください。

リダクションされた列に適用された名前付きデータ・リダクション・ポリシー式は、expressionパラメータで定義された式より優先されます。名前付きポリシー式の影響を受けるリダクションされた列を検索するには、REDACTION_EXPRESSIONSデータ・ディクショナリ・ビューを問い合せます。

BEGIN
   DBMS_REDACT.ALTER_POLICY(
     object_schema          => 'HR',
     object_name            => 'EMPLOYEES',
     policy_name            => 'redact_emp_id_nums',
     action                 => DBMS_REDACT.DROP_COLUMN,
     column_name            => 'EMAIL');
END;

146.5.3 APPLY_POLICY_EXPR_TO_COLプロシージャ

このプロシージャは、名前付きOracle Data Redactionポリシー式を、表またはビューからリダクションされた列に関連付けます。

構文

DBMS_REDACT.APPLY_POLICY_EXPR_TO_COL (
   object_schema                IN VARCHAR2 := NULL,
   object_name                  IN VARCHAR2,
   column_name                  IN VARCHAR2, 
   policy_expression_name       IN VARCHAR2 := NULL);

パラメータ

表146-8 APPLY_POLICY_EXPR_TO_COLプロシージャのパラメータ

パラメータ 説明

object_schema

リダクションされた列を含むスキーマの名前。省略すると、現行のスキーマが使用されます。

object_name

リダクションされた列を含むオブジェクト(表またはビュー)の名前。

column_name

ポリシー式を適用するリダクションされた列の名前。

POLICY_EXPRESSION_NAME

NULLの場合は、リダクションされた列column_nameに関連付けられた名前付きポリシー式が削除されます。

例外

  • ORA-28068 - オブジェクト"object"には、データ・リダクション・ポリシーがありません。

  • ORA–28082 - パラメータparameterが無効です。

  • ORA-28092 - 値valueのパラメータparameterにエラーがあります。

使用上のノート

このプロシージャに必要な権限のリストは、「DBMS_REDACTのセキュリティ・モデル」を参照してください。

REDACTION_EXPRESSIONSデータ・ディクショナリ・ビューを問い合せることで、既存のデータ・リダクション・ポリシー式を検索できます。リダクションされた列を検索するには、REDACTION_COLUMNSデータ・ディクショナリ・ビューを問い合せます。

BEGIN
   DBMS_REDACT.APPLY_POLICY_EXPR_TO_COL(
      object_schema           => 'OE',
      object_name             => 'CUSTOMERS',
      column_name             => 'INCOME_LEVEL',
      policy_expression_name  => 'oe_redact_pol');
END;

146.5.4 CREATE_POLICY_EXPRESSIONプロシージャ

このプロシージャは、名前付きOracle Data Redactionポリシー式を作成します。

構文

DBMS_REDACT.CREATE_POLICY_EXPRESSION (
   policy_expression_name          IN    VARCHAR2,
   expression                      IN    VARCHAR2,
   policy_expression_description   IN    VARCHAR2 := NULL);

パラメータ

表146-9 CREATE_POLICY_EXPRESSIONプロシージャのパラメータ

パラメータ 説明

POLICY_EXPRESSION_NAME

ポリシー式の名前。

expression

ポリシー式の定義。

policy_expression_description

ポリシー式の説明。

例外

  • ORA–28082 - パラメータparameterが無効です。

  • ORA-28092 - 値valueのパラメータparameterにエラーがあります。

使用上のノート

このプロシージャに必要な権限のリストは、「DBMS_REDACTのセキュリティ・モデル」を参照してください。

表の列にポリシー式を適用する方法は、「APPLY_POLICY_EXPR_TO_COLプロシージャ」を参照してください。

ポリシー式を作成した後、DBMS_REDACT.APPLY_POLICY_EXPR_TO_COLプロシージャを実行して、リダクションされた表またはビュー列に関連付けることができます。既存のリダクションされた列を検索するには、REDACTION_COLUMNSデータ・ディクショナリ・ビューを問い合せます。

BEGIN
   DBMS_REDACT.CREATE_POLICY_EXPRESSION(
     policy_expression_name          => 'oe_redact_pol',
     expression                      => 'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''OE'''),
     policy_expression_description   => 'Enables policy for user OE ');
END;

146.5.5 DISABLE_POLICYプロシージャ

このプロシージャは、データ・リダクション・ポリシーを無効にします。

構文

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

パラメータ

表146-10 DISABLE_POLICYプロシージャのパラメータ

パラメータ 説明

object_schema

表またはビューを所有するスキーマ。NULLの場合は現行ユーザーになります。

object_name

データ・リダクション・ポリシーが無効化される表またはビューの名前です。

policy_name

無効にするポリシーの名前。

例外

  • ORA-28068 - オブジェクト"object"には、データ・リダクション・ポリシーがありません。

  • ORA-28072 - 指定されたポリシー名が正しくありません。

  • ORA-28080 - ポリシーはすでに無効化されています。

使用上のノート

このプロシージャに必要な権限のリストは、「DBMS_REDACTのセキュリティ・モデル」を参照してください。

BEGIN
   DBMS_REDACT.DISABLE_POLICY (
     object_schema    => 'hr',
     object_name      => 'employees',
     policy_name      => 'redact_emp_ids');
END;

146.5.6 DROP_POLICYプロシージャ

このプロシージャは、表またはビューからリダクション・ポリシーを削除することで、データ・リダクション・ポリシーを削除します。

構文

DBMS_REDACT.DROP_POLICY (
   object_schema                IN    VARCHAR2 := NULL,
   object_name                  IN    VARCHAR2,
   policy_name                  IN    VARCHAR2);

パラメータ

表146-11 DROP_POLICYプロシージャのパラメータ

パラメータ 説明

object_schema

表またはビューを所有するスキーマ。NULLの場合は現行ユーザーになります。

object_name

データ・リダクション・ポリシーが削除される表またはビューの名前です。

policy_name

削除するポリシーの名前。

例外

  • ORA-28068 - オブジェクト"object"には、データ・リダクション・ポリシーがありません。

  • ORA-28072 - 指定されたポリシー名が正しくありません。

使用上のノート

このプロシージャに必要な権限のリストは、「DBMS_REDACTのセキュリティ・モデル」を参照してください。

BEGIN
   DBMS_REDACT.DROP_POLICY (
      object_schema    =>  'hr',
      object_name      =>  'employees',
      policy_name      =>  'redact_emp_ids');
END;

146.5.7 DROP_POLICY_EXPRESSIONプロシージャ

このプロシージャは、名前付きポリシー式を削除します。

構文

DBMS_REDACT.DROP_POLICY_EXPRESSION (
   policy_expression_name       IN    VARCHAR2);

パラメータ

表146-12 DROP_POLICY_EXPRESSIONプロシージャのパラメータ

パラメータ 説明

POLICY_EXPRESSION_NAME

ポリシー式の名前。

例外

  • ORA–28082 - パラメータparameterが無効です。

  • ORA-28092 - 値valueのパラメータparameterにエラーがあります。

使用上のノート

このプロシージャに必要な権限のリストは、「DBMS_REDACTのセキュリティ・モデル」を参照してください。

REDACTION_EXPRESSIONSデータ・ディクショナリ・ビューを問い合せることで、既存のデータ・リダクション・ポリシー式を検索できます。

BEGIN
   DBMS_REDACT.DROP_POLICY_EXPRESSION(
     policy_expression_name  => 'oe_redact_pol');
END;

146.5.8 ENABLE_POLICYプロシージャ

このプロシージャは、データ・リダクション・ポリシーを再度有効にします。

構文

DBMS_REDACT.ENABLE_POLICY (
   object_schema                IN    VARCHAR2 := NULL,
   object_name                  IN    VARCHAR2,
   policy_name                  IN    VARCHAR2);

パラメータ

表146-13 ENABLE_POLICYプロシージャのパラメータ

パラメータ 説明

object_schema

表またはビューを所有するスキーマ。NULLの場合は現行ユーザーになります。

object_name

データ・リダクション・ポリシーを有効にする表またはビューの名前

policy_name

有効にするポリシーの名前。

例外

  • ORA-28068 - オブジェクト"object"には、データ・リダクション・ポリシーがありません。

  • ORA-28071 - アクションが無効です。

  • ORA-28072 - 指定されたポリシー名が正しくありません。

  • ORA-28079 - ポリシーはすでに有効化されています。

使用上のノート

このプロシージャに必要な権限のリストは、「DBMS_REDACTのセキュリティ・モデル」を参照してください。

BEGIN
   DBMS_REDACT.ENABLE_POLICY (
      object_schema    =>  'hr',
      object_name      =>  'employees',
      policy_name      =>  'redact_emp_ids');
END;

146.5.9 UPDATE_FULL_REDACTION_VALUESプロシージャ

このプロシージャは、完全リダクションのデータ・リダクション・ポリシーでデフォルトで表示される値を変更します。

構文

DBMS_REDACT.UPDATE_FULL_REDACTION_VALUES (
   number_val       IN NUMBER                    := NULL,
   binfloat_val     IN BINARY_FLOAT              := NULL,
   bindouble_val    IN BINARY_DOUBLE             := NULL,
   char_val         IN CHAR                      := NULL,
   varchar_val      IN VARCHAR2                  := NULL,
   nchar_val        IN NCHAR                     := NULL,
   nvarchar_val     IN NVARCHAR2                 := NULL,
   date_val         IN DATE                      := NULL,
   ts_val           IN TIMESTAMP                 := NULL,
   tswtz_val        IN TIMESTAMP WITH TIME ZONE  := NULL,
   blob_val         IN BLOB                      := NULL,
   clob_val         IN CLOB                      := NULL,
   nclob_val        IN NCLOB                     := NULL,
   boolean_val      IN BOOLEAN                   := NULL);

パラメータ

表146-14 UPDATE_FULL_REDACTION_VALUESプロシージャのパラメータ

パラメータ 説明

number_val

NUMBERデータ・タイプの列のデフォルト値を変更します。

binfloat_val

BINARY_FLOATデータ・タイプの列のデフォルト値を変更します。

bindouble_val

BINARY_DOUBLEデータ・タイプの列のデフォルト値を変更します。

char_val

CHARデータ・タイプの列のデフォルト値を変更します。

varchar_val

VARCHAR2データ・タイプの列のデフォルト値を変更します。

nchar_val

NCHARデータ・タイプの列のデフォルト値を変更します。

nvarchar_val

NVARCHAR2データ・タイプの列のデフォルト値を変更します。

date

DATEデータ・タイプの列のデフォルト値を変更します。

ts_val

TIMESTAMPデータ・タイプの列のデフォルト値を変更します。

tswtz_val

TIMESTAMP WITH TIME ZONEデータ・タイプの列のデフォルト値を変更します。

blob_val

BLOBデータ・タイプの列のデフォルト値を変更します。

clob_val

CLOBデータ・タイプの列のデフォルト値を変更します。

nclob_val

NCLOBデータ・タイプの列のデフォルト値を変更します。

boolean_val

BOOLEANデータ・タイプの列のデフォルト値を変更します。

使用上のノート

このプロシージャに必要な権限のリストは、「DBMS_REDACTのセキュリティ・モデル」を参照してください。

146.5.10 UPDATE_POLICY_EXPRESSIONプロシージャ

このプロシージャは、名前付きOracle Data Redactionポリシー式を更新します。

構文

DBMS_REDACT.UPDATE_POLICY_EXPRESSION (
   policy_expression_name          IN    VARCHAR2,
   expression                      IN    VARCHAR2,
   policy_expression_description   IN    VARCHAR2 := NULL);

パラメータ

表146-15 UPDATE_POLICY_EXPRESSIONプロシージャのパラメータ

パラメータ 説明

POLICY_EXPRESSION_NAME

ポリシー式の名前。

expression

ポリシー式の定義。

policy_expression_description

ポリシー式の説明。

例外

  • ORA–28082 - パラメータparameterが無効です。

  • ORA-28092 - 値valueのパラメータparameterにエラーがあります。

使用上のノート

このプロシージャに必要な権限のリストは、「DBMS_REDACTのセキュリティ・モデル」を参照してください。

REDACTION_EXPRESSIONSデータ・ディクショナリ・ビューを問い合せることで、既存のポリシー式を検索できます。

BEGIN
   DBMS_REDACT.UPDATE_POLICY_EXPRESSION(
     policy_expression_name         => 'oe_redact_pol',
     expression                     => 'SYS_CONTEXT(''USERENV'',''SESSION_USER'') != ''OE'''),
     policy_expression_description  => 'Updates policy expression for oe_redact_pol');
END;