4.1.1 CREATE TABLE(表定義)
暗号化表を定義する場合のCREATE TABLEについて説明します。
なお,ここでは,CREATE TABLEの暗号化に関係する説明だけ記載しています。そのほかのCREATE TABLEの説明については,マニュアル「HiRDB Version 9 SQLリファレンス」を参照してください。
(1) 形式
表要素::={列定義|表制約定義} 列定義::=列名 データ型〔ARRAY [最大要素数]〕 〔NO SPLIT〕 〔{列データ抑制指定|〔列回復制約〕 {IN {LOB列格納用RDエリア名 |(LOB列格納用RDエリア名) |((LOB列格納用RDエリア名) 〔,(LOB列格納用RDエリア名)〕…) |マトリクス分割LOB列格納用RDエリア指定} |抽象データ型定義内LOB格納用RDエリア指定}}〕 〔プラグイン指定〕 〔圧縮指定〕 〔DEFAULT句〕 〔列制約〕… 〔更新可能列属性〕 〔暗号化指定〕 列データ抑制指定::=SUPPRESS 暗号化指定::=INNER CONSTRUCTOR 〔OF TYPE1〕
(2) オペランド
- 列データ抑制指定::=SUPPRESS
-
暗号化表の場合,SUPPRESSを指定しても無効となります(エラーにはなりません)。
- 暗号化指定::=INNER CONSTRUCTOR 〔OF TYPE1〕
-
HiRDBが組み込んでいる暗号ライブラリを使用して,列を暗号化する場合に指定します。
このオペランドを指定すると,データの暗号化,および復号化に使用する共通鍵が生成されます。
なお,OF TYPE1は指定してもしなくても意味は変わりません。
暗号化指定の規則を次に示します。
-
繰返し列には指定できません。
-
次のデータ型には指定できません。
・BLOB型
・抽象データ型
-
次の分割キー構成列には指定できません。
・格納条件指定
・境界値指定
・マトリクス分割(ハッシュ関数の対象となる列を除きます)
-
クラスタキー構成列には指定できません。
-
一時表の列には指定できません。
-
予備列には指定できません。
-
暗号化列の既定義型のデータ長については,「表の格納ページ数の計算方法」を参照してください。
-
(3) 使用例
暗号化表を定義する場合のCREATE TABLEの例を次に示します。
- 暗号化表として,在庫表(ZAIKO)を定義します。このとき,単価(TANKA)列を暗号化します。
CREATE TABLE ZAIKO (SCODE CHAR(4), SNAME NCHAR(8), COL NCHAR(1), TANKA INTEGER INNER CONSTRUCTOR OF TYPE1, ZSURYO INTEGER)