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
です
-