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化リダクション |
---|---|---|---|---|---|
|
なし |
なし |
なし |
なし |
なし |
BINARY_DOUBLE |
あり |
あり |
なし |
あり |
あり |
BINARY_FLOAT |
あり |
あり |
なし |
あり |
あり |
|
あり |
なし |
なし |
なし |
あり |
|
あり |
なし |
なし |
あり |
あり |
CHAR |
あり |
あり |
あり |
あり |
あり |
|
あり |
なし |
あり |
なし |
あり |
DATE |
あり |
あり |
なし |
あり |
あり |
FLOAT |
あり |
あり |
なし |
あり |
あり |
FLOAT |
あり |
あり |
なし |
あり |
あり |
INTERVAL DAY TO SECOND |
なし |
なし |
なし |
なし |
なし |
INTERVAL YEAR TO MONTH |
なし |
なし |
なし |
なし |
なし |
LONG RAW |
なし |
なし |
なし |
なし |
なし |
NCHAR |
あり |
あり |
あり |
あり |
あり |
|
あり |
なし |
あり |
なし |
あり |
NUMBER |
あり |
あり |
なし |
あり |
あり |
NVARCHAR2 |
あり |
あり |
あり |
あり |
あり |
RAW |
なし |
なし |
なし |
なし |
なし |
|
なし |
なし |
なし |
なし |
なし |
TIMESTAMP |
あり |
あり |
なし |
あり |
あり |
TIMESTAMP WITH LOCAL TIME ZONE |
あり |
あり |
なし |
あり |
あり |
TIMESTAMP WITH TIME ZONE |
あり |
あり |
なし |
あり |
あり |
|
なし |
なし |
なし |
なし |
なし |
VARCHAR2 ( |
あり |
あり |
あり |
あり |
あり |
2.8.2 ANSIデータ型のリダクション機能
Oracle Data Redactionでは、データ・リダクション・ポリシーのリダクション・タイプに応じて固有の方法でANSIデータ型を変換します。
表2-2では、ANSIデータ型の場合の完全、部分、正規表現、ランダムおよびNULL化リダクション・スタイルのしくみを比較して、それらがどのように変換されるかとそれらのサポート状況を示します。
表2-2 ANSIデータ型のリダクション・サポート
データ型 | 変換方法 | 完全リダクション | 部分リダクション | 正規表現リダクション | ランダム・リダクション | NULL化リダクション |
---|---|---|---|---|---|---|
|
|
あり |
あり |
あり |
あり |
あり |
|
|
あり |
あり |
あり |
あり |
あり |
|
|
あり |
あり |
あり |
あり |
あり |
|
|
あり |
あり |
あり |
あり |
あり |
|
|
あり |
あり |
なし |
あり |
あり |
|
|
あり |
あり |
なし |
あり |
あり |
|
|
あり |
あり |
なし |
あり |
あり |
|
|
あり |
あり |
なし |
あり |
あり |
|
変換なし |
なし |
なし |
なし |
なし |
なし |
2.8.3 組込みデータ型およびANSIデータ型の完全リダクション機能
完全リダクションでは、デフォルトのリダクション済の値は、データ型がOracle組込みであるかANSIであるかによって異なります。
表2-3に、完全リダクションを使用するOracle組込みデータ型の列とANSIデータ型の列についてデフォルトの設定を示します。
表2-3 完全リダクションを使用する列のデフォルト設定およびカテゴリ
データ型 | デフォルトのリダクション値 | データ型のカテゴリ |
---|---|---|
|
1つの空白( |
Oracle組込み |
|
1つの空白( |
ANSI |
|
1つの空白( |
ANSI |
|
1つの空白( |
ANSI |
|
1つの空白( |
ANSI |
|
ゼロ( |
Oracle組込み |
|
ゼロ( |
Oracle組込み |
|
ゼロ( |
ANSI |
|
ゼロ( |
ANSI |
|
ゼロ( |
ANSI |
|
|
Oracle組込み |
|
Oracleの |
Oracle組込み |
|
|
Oracle組込み |
|
|
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
プロシージャの使用の詳細は、「デフォルトの完全データ・リダクション値の変更」も参照してください。