2.8 データ型に基づいた完全、部分、正規表現、ランダムおよびNULL化リダクションの比較

完全、部分、正規表現、ランダムおよびNULL化データ・リダクション・スタイルは、Oracle組込み、ANSI、ユーザー定義およびOracle提供データ型それぞれに異なる方法で作用します。

2.8.1 Oracle組込みデータ型のリダクション機能

Oracle Data Redactionでは、使用されるデータ・リダクション・ポリシーのタイプに応じてOracle組込みデータ型を扱います。

表2-1に、Oracle組込みデータ型の場合のOracle Data Redactionでのサポート状況を示します。

表2-1 Oracle組込みデータ型のリダクション・サポート

列のデータ型 完全リダクション 部分リダクション 正規表現リダクション ランダム・リダクション NULL化リダクション

BFILE

なし

なし

なし

なし

なし

BINARY_DOUBLE

あり

あり

なし

あり

あり

BINARY_FLOAT

あり

あり

なし

あり

あり

BLOB

あり

なし

なし

なし

あり

BOOLEAN

あり

なし

なし

あり

あり

CHAR

あり

あり

あり

あり

あり

CLOB

あり

なし

あり

なし

あり

DATE

あり

あり

なし

あり

あり

FLOAT

あり

あり

なし

あり

あり

FLOAT

あり

あり

なし

あり

あり

INTERVAL DAY TO SECOND

なし

なし

なし

なし

なし

INTERVAL YEAR TO MONTH

なし

なし

なし

なし

なし

LONG RAW

なし

なし

なし

なし

なし

NCHAR

あり

あり

あり

あり

あり

NCLOB

あり

なし

あり

なし

あり

NUMBER

あり

あり

なし

あり

あり

NVARCHAR2

あり

あり

あり

あり

あり

RAW

なし

なし

なし

なし

なし

ROWID

なし

なし

なし

なし

なし

TIMESTAMP

あり

あり

なし

あり

あり

TIMESTAMP WITH LOCAL TIME ZONE

あり

あり

なし

あり

あり

TIMESTAMP WITH TIME ZONE

あり

あり

なし

あり

あり

UROWID

なし

なし

なし

なし

なし

VARCHAR2

(VARCHAR2(20000)などの長いVARCHAR2を含む)

あり

あり

あり

あり

あり

2.8.2 ANSIデータ型のリダクション機能

Oracle Data Redactionでは、データ・リダクション・ポリシーのリダクション・タイプに応じて固有の方法でANSIデータ型を変換します。

表2-2では、ANSIデータ型の場合の完全、部分、正規表現、ランダムおよびNULL化リダクション・スタイルのしくみを比較して、それらがどのように変換されるかとそれらのサポート状況を示します。

表2-2 ANSIデータ型のリダクション・サポート

データ型 変換方法 完全リダクション 部分リダクション 正規表現リダクション ランダム・リダクション NULL化リダクション

CHARACTER(n)

CHAR(n)

CHAR(n)に変換

あり

あり

あり

あり

あり

CHARACTER VARYING(n)

CHAR VARYING(n)

VARCHAR2(n)に変換

あり

あり

あり

あり

あり

NATIONAL CHARACTER(n)

NATIONAL CHAR(n)

NCHAR(n)

NCHAR(n)に変換

あり

あり

あり

あり

あり

NATIONAL CHARACTER VARYING(n)

NATIONAL CHAR VARYING(n)

NCHAR VARYING(n)

NVARCHAR2(n)に変換

あり

あり

あり

あり

あり

NUMERIC[(p,s)]

DECIMAL[(p,s)]

NUMBER(p,s)に変換

あり

あり

なし

あり

あり

INTEGER

INT

SMALLINT

NUMBER(38)に変換

あり

あり

なし

あり

あり

FLOAT

DOUBLE PRECISION

FLOAT(126)に変換

あり

あり

なし

あり

あり

REAL

FLOAT(63)に変換

あり

あり

なし

あり

あり

GRAPHIC

LONG VARGRAPHIC

VARGRAPHIC

TIME

変換なし

なし

なし

なし

なし

なし

2.8.3 組込みデータ型およびANSIデータ型の完全リダクション機能

完全リダクションでは、デフォルトのリダクション済の値は、データ型がOracle組込みであるかANSIであるかによって異なります。

表2-3に、完全リダクションを使用するOracle組込みデータ型の列とANSIデータ型の列についてデフォルトの設定を示します。

表2-3 完全リダクションを使用する列のデフォルト設定およびカテゴリ

データ型 デフォルトのリダクション値 データ型のカテゴリ

CHARACTER

1つの空白(" ")

Oracle組込み

CHARACTER(n)

CHAR(n)

1つの空白(" ")

ANSI

CHARACTER VARYING(n)

CHAR VARYING(n)

1つの空白(" ")

ANSI

NATIONAL CHARACTER(n)

NATIONAL CHAR(n)

NCHAR(n)

1つの空白(" ")

ANSI

NATIONAL CHARACTER VARYING(n)

NATIONAL CHAR VARYING(n)

NCHAR VARYING(n)

1つの空白(" ")

ANSI

NUMBER

ゼロ(0)

Oracle組込み

NUMERIC[(p,s)]

DECIMAL[(p,s)]

ゼロ(0)

Oracle組込み

INTEGER

INT

SMALLINT

ゼロ(0)

ANSI

FLOAT

DOUBLE PRECISION

ゼロ(0)

ANSI

REAL

ゼロ(0)

ANSI

DATE-TIME

01–01–01または01–01–01 01:00:00

Oracle組込み

BLOB

Oracleの[redacted]のRAW表現

脚注1

Oracle組込み

CLOB

[redacted]

Oracle組込み

NCLOB

[redacted]

Oracle組込み

脚注1

文字セットを変更した場合、DBMS_REDACT.UPDATE_FULL_REDACTION_VALUESプロシージャを呼び出して、次のように新しい文字セットで値をRAW表現に設定する必要があります。

DECLARE
 new_red_blob BLOB;
BEGIN
 DBMS_LOB.CREATETEMPORARY(new_red_blob, TRUE);
 DBMS_LOB.WRITE(new_red_blob, 10, 1, UTL_RAW.CAST_TO_RAW('[redacted]'));
 dbms_redact.update_full_redaction_values(
  blob_val      => new_red_blob);
DBMS_LOB.FREETEMPORARY(new_red_blob);
END;
/

このプロシージャの実行後、データベースを再起動します。

DBMS_REDACT.UPDATE_FULL_REDACTION_VALUESプロシージャの使用の詳細は、「デフォルトの完全データ・リダクション値の変更」も参照してください。

2.8.4 ユーザー定義データ型またはOracle提供データ型のリダクション機能

Oracle Data Redactionでは、いくつかのデータ型はサポートされていません。

Oracle Data Redactionでは、ユーザー定義データ型やOracle提供データ型(anytype型、JSON型、VECTOR型、XML型、Oracle Spatial型など)はサポートされていません。