Hitachi

ノンストップデータベース HiRDB Version 10 解説


3.3.11 改竄防止表

重要なデータを人為的ミスや不正な改竄から守るため,表の所有者も含め,すべてのユーザに対して表データの更新を禁止した改竄防止表を定義できるようにしました。改竄防止表に対する操作の実行可否を次の表に示します。

表3‒5 改竄防止表に対する操作の実行可否

操作

改竄防止表

行削除禁止期間指定あり

行削除禁止期間指定なし

挿入(INSERT)

検索(SELECT)

列単位の更新(UPDATE)

※1

※1

行単位の更新(UPDATE)

×

×

削除(DELETE)

※2

×

全行削除(PURGE TABLE)

×

×

上記以外の操作系SQL

(凡例)

○:実行できます。

×:実行できません。

注※1

更新可能列だけ更新できます。

注※2

行削除禁止期間を経過しているデータだけ削除できます。行削除禁止期間を指定しないと,表データを削除できません。

〈この項の構成〉

(1) 指定方法

定義系SQLのCREATE TABLEINSERT ONLYオプション(改竄防止オプション)を指定します。また,ALTER TABLEINSERT ONLYオプションを指定して,既存の表を改竄防止表に定義変更することもできます。

表定義時又は定義変更時に次の列を定義できます。

  • 更新可能列

    更新可能列を定義すると,列単位に,次の方法でデータを更新できます。

    • 常に更新できる(UPDATEを指定)

    • ナル値から非ナル値へ一度だけ更新できる(UPDATE ONLY FROM NULLを指定)

    更新可能列を定義できるのは,次の時点です。

    • CREATE TABLE実行時

    • ALTER TABLE CHANGE INSERT ONLY実行前

    • ALTER TABLE ADD 列名,又はALTER TABLE CHANGE 列名 実行時

    注※

    ALTER TABLE CHANGE 列名は,改竄防止表に対しては実行できません。

  • 挿入履歴保持列

    挿入履歴保持列を定義すると,行削除禁止期間を指定できます。行削除禁止期間を省略すると,表データは一切削除できません。また,表にデータがあるとDROP TABLEが実行できないため,行削除禁止期間を省略した場合,表及び表データは共に削除できません。そのため,データの保存期間が決まっている場合,又は決められる場合は行削除禁止期間を指定してください。

(2) 制限事項

改竄防止表及び改竄防止表格納RDエリアに対する制限事項を次に示します。詳細は,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

  • すべての列に更新可能列属性を指定し,かつ改竄防止オプションを指定することはできません。

  • 既存の列を更新可能列に変更したり,更新可能列を通常の列に変更したりすることはできません。

  • 更新可能列は,改竄防止機能を適用する前に定義しておく必要があります。

  • 既存の表を改竄防止表に変更する場合,データが存在する表に対して改竄防止機能は適用できません。まず,既存の表のデータをアンロードして,改竄防止表に変更してからデータをロードする必要があります。

  • データがある改竄防止表は削除できません。行削除禁止期間を指定していない改竄防止表はデータが削除できないため,表も削除できません。

  • 改竄防止表格納RDエリアに対して,データベース構成変更ユティリティ(pdmod)によるRDエリアの再初期化(initialize rdarea)はできません。

  • 改竄防止表格納RDエリアにはインナレプリカ機能(UNIX版限定)を使用できません。また,インナレプリカ機能を使用しているRDエリアに格納されている表に,改竄防止機能は適用できません。

  • 改竄防止表に対して,レプリケーション機能(HiRDB Dataextractor及びHiRDB Datareplicator)を使用してデータの複写,及び更新結果を反映しないでください。使用すると,反映元と反映先でデータの内容が不一致になったり,エラーになったりすることがあります。



目次