Hitachi

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


1.2.3 実行結果の変更点

復号認証キー情報が一致する場合,暗号化表に対する実行結果は,特定UAPに対する暗号化データの復号機能を使用していない場合と同じになります。ここでは,復号認証キー情報が一致しない場合に,実行結果が変わる内容について説明します。

〈この項の構成〉

(1) 検索SQLの場合

データを検索するSQL実行時の変更点について説明します。復号認証キー情報が一致しない場合の動作は,暗号化列の指定個所によって異なります。復号認証キー情報が一致しない場合の検索SQL実行結果を,次の表に示します。

表1‒2 復号認証キー情報が一致しない場合の検索SQL実行結果

暗号化列の指定個所

実行結果

WHERE句中※1

ON句中※1

HAVING句中※1

副問合せ中※1※2

検索データなし(SQLCODE=100)になります。

上記以外

マスクした値を用いてSQL処理を実行した結果を返却します。

注※1

導出表および内部導出表の導出列のうち,使用しない導出列を内部的に削除するため,暗号化列を含む値式を導出する導出列を指定しない場合,検索結果がデータなしにならないことがあります。

注※2

副問合せについては,マニュアル「HiRDB SQLリファレンス」の「副問合せ」を参照してください。次に示す個所に暗号化列が含まれる場合も,副問合せ中に暗号化列を指定した場合と同様の検索結果になります。

  • 導出表

  • 内部導出表

  • group by句に列指定以外の値式を指定した場合,等価変換によって生成する導出表

暗号化列のデータをマスクする値を次の表に示します。

表1‒3 暗号化列のデータをマスクした値

暗号化列のデータ型

マスクにより出力されるデータ

CHAR

MCHAR

VARCHAR

MVARCHAR

半角アスタリスク(*)(0x2A)の値が定義長の長さ分連続するデータ列

NCHAR

NVARCHAR

半角アスタリスク(*)(0x2A)の値が定義長×2の長さ分連続するデータ列

INTEGER

SMALLINT

0

DECIMAL(m,n)

0.00...00

(小数点以下はn個の0)

符号部は正規化後のX'C'

FLOAT

+0.000000000000000E+00

SMALLFLT

+0.0000000E+00

DATE

0001-01-01

TIME

00:00:00

TIMESTAMP(p)

0001-01-01 00:00:00.0...0

(小数点以下はp個の0)

INTERVAL YEAR TO DAY

00000000.

INTERVAL HOUR TO SECOND

000000.

BINARY

0x00

(長さ1バイト)

注※

暗号化列のデータがNULL値の場合,NULL値を返却します。

(2) INSERT文,UPDATE文,DELETE文の場合

INSERT文,UPDATE文,DELETE文のSQL実行時の変更点について説明します。復号認証キー情報が一致しない場合の動作は,暗号化列の指定個所によって異なります。復号認証キー情報が一致しない場合の更新SQL実行結果を,次の表に示します。

表1‒4 復号認証キー情報が一致しない場合の更新SQL実行結果

SQL種別

更新対象表

更新対象列

更新対象列以外での暗号化列の指定

SQL実行結果

INSERT

暗号化表

暗号化列

×

非暗号化列

指定あり

×

指定なし

※1※2

非暗号化表

非暗号化列

指定あり

×

指定なし

※2※3

UPDATE

暗号化表

暗号化列

×

非暗号化列

指定あり

×

指定なし

※2※3※4

非暗号化表

非暗号化列

指定あり

×

指定なし

※2※3※4

DELETE

暗号化表

指定あり

×

指定なし

※2※4

非暗号化表

指定あり

×

指定なし

※2※4

(凡例)

○:実行できます。

×:SQLエラー(KFPA19930-E)になります。

−:該当しません。

注※1

次の条件に該当する場合,SQLエラー(KFPA19930-E)となります。

  • 暗号化列の列定義にwith defaultを指定している。

  • 暗号化列の列定義にDEFAULT句を指定している。

注※2

更新対象表への操作を契機とするトリガを定義し,次の条件に該当する場合,SQLエラー(KFPA19930-E)となります。

  • トリガ動作条件に暗号化列を指定している。

  • トリガSQL中に新値相関名で修飾した暗号化列または旧値相関名で修飾した暗号化列を指定している。

  • トリガSQLで実行する操作系SQLがSQLエラー(KFPA19930-E)を出力する条件に該当する。

注※3

更新対象表を参照表とする参照制約を定義し,被参照表の主キー構成列に暗号化列を含む場合,SQLエラー(KFPA19930-E)となります。

注※4

更新対象表を被参照表とする参照制約を定義し,参照表の外部キー構成列に暗号化列を含む場合,SQLエラー(KFPA19930-E)となります。

(3) ASSIGN LIST文の場合

ASSIGN LIST文のSQL実行時の変更点について説明します。復号認証キー情報が一致しない場合の動作は,暗号化列の指定個所によって異なります。復号認証キー情報が一致しない場合のASSIGN LIST文実行結果を,次の表に示します。

表1‒5 復号認証キー情報が一致しない場合のASSIGN LIST文実行結果

リストの基表

暗号化列の指定

SQL実行結果

暗号化表

指定あり

×

指定なし

非暗号化表

(凡例)

○:実行できます。

×:SQLエラー(KFPA19930-E)になります。

−:該当しません。

(4) CALL文の場合

CALL文を実行した場合の実行可否および実行結果は,呼び出すSQL手続き中で実行する操作系SQLの実行可否および実行結果に依存します。

(5) EXECUTE文,EXECUTE IMMEDIATE文の場合

EXECUTE文またはEXECUTE IMMEDIATE文を実行した場合の実行可否および実行結果は,EXECUTE文またはEXECUTE IMMEDIATE文で実行するSQLの実行可否および実行結果に依存します。

(6) その他SQLの場合

その他SQLについては,変更点はありません。

(7) ユティリティの場合

ユティリティについては,変更点はありません。