非互換
FUJITSU Enterprise Postgres 12では、データ秘匿化が可能なデータ型でない型を戻り値として返す演算子または関数を実行した場合に、エラーとなるように変更します。
下記の場合、3)の演算子または関数が、秘匿化されずに実行される場合があります。
これは、秘匿化対象列を含むデータが秘匿化されずに実行されるため、誤った結果です。
1) 秘匿化ポリシーを作成する。かつ、
2) SELECT文を実行する。かつ、
3) 2)のSELECT文の中に、演算子または関数を実行する。かつ、
4) 3)の演算子または関数の引数に副問い合わせを含む。かつ、
5) 3)の演算子または関数の引数に、1)で作成した秘匿化対象の列を含む。かつ、
6) 3)の演算子または関数の戻り値が、“運用ガイド”の“データ秘匿化が可能なデータ型”に記載されていない型を返す場合。
3)の演算子または関数が、下記のエラーとなります。
ERROR: The output data type is incompatible with the confidential policy. HINT: Data type of the result value(s) produced by expression/function using confidential columns is not supported by Data masking module. Consider removing confidential columns from such expressions/functions.
これは、“運用ガイド”の“データ秘匿化が可能なデータ型”に記載されていないデータ型を演算子または関数が返すため正しい結果です。
対処方法
下記のいずれかの対処をすることで、FUJITSU Enterprise Postgres 11以前と同一の実行結果を出力できるようにします。
1) 秘匿化ポリシーを変更し、当該SQLを実行するユーザに対して秘匿化が実施されないように設定する。
2) SQLを変更し、 “運用ガイド”の“データ秘匿化が可能なデータ型”に記載されていない型を返す演算子または関数を使用しないようにする。