2.3 データの一部をリダクションする部分データ・リダクション

部分データ・リダクションでは、表示される出力の一部をリダクションします。

実際のデータ内に、リダクションを開始する位置、その位置からリダクションする文字数および使用するリダクション文字を設定できます。(実際のデータは、保護表または保護ビューのデータです。実際のデータには数字123456789などがあり、この数字のリダクションされたデータは、999996789になります。)このタイプのリダクションは、なんらかの方法でデータがリダクションされたことを、データを表示しているユーザーに明らかにしたい場合に便利です。通常、このタイプのリダクションは、クレジット・カード番号やID番号に使用します。

部分データ・リダクションでは、データの幅が固定されている必要があることに注意してください。可変長の文字列値を含む列をリダクションする場合は、正規表現リダクションを使用する必要があります。

部分リダクションを指定するには、DBMS_REDACT.ADD_POLICYまたはDBMS_REDACT.ALTER_POLICYプロシージャのfunction_typeパラメータをDBMS_REDACT.PARTIALに設定し、function_parametersパラメータを使用して部分リダクション動作を定義する必要があります。

部分データ・リダクションで表示される出力は、次のとおりです。

  • 文字データ型: 部分的にリダクションする場合、987-65-4320という値の社会保障番号(文字データ型内で文字列がハイフンで連結されている)をリダクションすると、次の例のように表示されます。右側のコードは文字データのリダクション方法を指定しています。このコードでは、実際のデータで想定されている入力形式、リダクションされた出力の表示に使用する形式、リダクションに使用する文字、リダクションの開始位置、リダクションする文字数が指定されています。最初の例では、文字データ型の社会保障番号に事前定義された形式(以前のリリースの呼び方では「ショートカット」)を使用し、2番目の例では、番号間のハイフン(-)を保持しながら最初の5つの番号をアスタリスク(*)で置換しています。

    • function_parameters => DBMS_REDACT.REDACT_US_SSN_F5の結果はXXX-XX-4320です

    • function_parameters => 'VVVFVVFVVVV,VVV-VV-VVVV,*,1,5'の結果は***-**-4320です

    これらの例では、Vはリダクション可能な各文字を示し、Fは書式設定文字を使用して書式設定する各文字を示します。

  • 数値データ型: 部分的にリダクションされたNUMBERデータ型は、指定された文字で置き換えられた数値で表示されます。たとえば、987654321として格納されている社会保障番号は次のようになります。どちらも最初の5桁をリダクションします。最初の例では、NUMBERデータ型の社会保障番号のために設計されている事前定義された形式を使用し、2番目の例では、最初の5桁の番号が9で置換されます。

    • function_parameters => DBMS_REDACT.REDACT_NUM_US_SSN_F5の結果はXXXXX4321です

    • function_parameters => '9,1,5'の結果は999994321です

  • 日時データ型: 部分的にリダクションされた日時の値を単純に別の日付に表示できます。たとえば、日付29-AUG-11 10.20.50.000000 AMは、次のように表示されます。最初の例では、月の日付が02 (d02という設定を使用)にリダクションされ、2番目の例では、月がDEC (m12を使用)にリダクションされます。大文字の値は、実際の日(D)、実際の月(M)、実際の年(Y)、実際の時間(H)、実際の分(M)および実際の秒(S)を表示します。

    • function_parameters => 'Md02YHMS'の結果は02-AUG-11 10.20.50.000000 AMです

    • function_parameters => 'm12DYHMS'の結果は29-DEC-11 10.20.50.000000 AMです