Hitachi

ノンストップデータベース HiRDB Version 10 データベース暗号化機能


6.3.1 暗号化したデータベースを運用するときの注意事項

〈この項の構成〉

(1) 暗号化した場合の処理時間

表を暗号化すると,暗号化および復号化の処理があるため,その分処理速度が遅くなります。性能が劣化する可能性があるため,暗号化する列は必要最低限にしてください。また,SQLを作成する場合,暗号化列はなるべく比較述語(=),またはIN述語(IN)で判定するようにしてください。

暗号化しない場合は,インデクスは昇順または降順になることが保証されますが,暗号化する場合は保証されなくなるため,述語によっては,インデクスのサーチ条件によるインデクスのサーチ範囲の絞り込みができなくなり,性能が劣化します。同様の理由によって,ORDER BY処理方式,およびグループ分け処理方式で,インデクスを使用した高速な処理方式が選択できなくなります。

(a) インデクスのサーチ範囲の絞り込み適用可否

暗号化列に対するインデクスのサーチ範囲の絞込み適用可否を次の表に示します。サーチ条件については,マニュアル「HiRDB コマンドリファレンス」を参照してください。

表6‒2 暗号化列に対するインデクスのサーチ範囲の絞込み適用可否

述語

非暗号化列での適用可否

暗号化列での適用可否

比較述語(=)

比較述語(=以外)

※1

×

NULL述語(IS NULL)

NULL述語(IS NOT NULL)

※2

※2

IN述語(IN)

IN述語(NOT IN)

×

×

LIKE述語

※3

×

XLIKE述語

×

×

BETWEEN述語

※4

×

EXISTS述語

構造化繰返し述語

限定述語

※5

※5

論理述語

(凡例)

○:絞込みを適用します。

×:絞込みを適用しません。

−:暗号化列は,データ比較に使用しないか,または指定できません。

注※1

<>,^=,および!=は,絞込みを適用しません。

注※2

列に定義した単一列インデクスを利用しない場合,絞込みを適用しません。

注※3

NOT LIKEの場合は絞込みを適用しません。

注※4

NOT BETWEENの場合は絞込みを適用しません。

注※5

=ANY,および=SOMEの場合だけ,絞込みを適用します。

(b) 選択されないORDER BY処理方式

暗号化列を含むORDER BY処理で,選択できなくなる処理方式を次に示します。ORDER BY処理方式の種類については,マニュアル「HiRDB コマンドリファレンス」を参照してください。

  • SORT CANCEL BY INDEX

  • SORT CANCEL BY INDEX(LIMIT SCAN)

(c) 選択されないグループ分け処理方式

暗号化列を含むグループ分け処理で,選択できなくなる処理方式を次に示します。グループ分け処理方式の種類については,マニュアル「HiRDB コマンドリファレンス」を参照してください。

  • SORT CANCEL BY INDEX

  • SORT CANCEL BY INDEX{SET SCAN}

  • IMPLICIT SORT CANCEL BY INDEX{SET FUNCTION SCAN}

  • IMPLICIT MIN-MAX INDEX

(2) 暗号化表の移行

暗号化表の移行先のHiRDBで,HiRDB Data Convert Type1 Optionをセットアップしてください。

(3) DECIMAL型の暗号化列を検索した場合の符号部の扱い

DECIMAL型の列を暗号化した場合,システム共通定義のpd_dec_sign_normalizeオペランドの指定値に関係なく,正の符号はすべてX'C'に変換します。このため,符号にX'F'を指定してデータを格納した場合でも,検索結果の符号は必ずX'C'になります。

(4) 強制的にコストベース最適化モード2を適用するSQL

SQL中に暗号化列が含まれる場合,強制的にコストベース最適化モード2が適用されます。例を次に示します。

SELECT C1,C2 FROM T3

下線部分が該当個所です。C2は暗号化列です。

(5) 更新可能なオンライン再編成を実行したときに暗号化されないファイル

暗号化したデータベースに対して,更新可能なオンライン再編成を実行する場合,次に示すファイルに出力されるデータは暗号化されません。

スキップ情報出力ファイル,およびSQLトレース情報ファイルについては,マニュアル「HiRDB コマンドリファレンス」を参照してください。