13.9.1 データ用DBエリア以外のDBエリアを暗号化している場合
データ用DBエリア以外のDBエリアを暗号化している場合にデータ暗号鍵を更新するには,adbinitコマンドでデータベースを初期設定し直す必要があります。そのため,DBエリア,表,インデクスの再定義や,表へのデータの再インポートなどをする必要があります。手順を以降で説明します。
- 〈この項の構成〉
(1) データベースのバックアップを取得する
データ暗号鍵の更新手順を間違えると,データベースの状態がデータ暗号鍵の更新前とは異なってしまうおそれがあります。そのため,データ暗号鍵を更新する前にデータベースのバックアップを取得してください。バックアップの取得方法については,「13.6 バックアップを取得する場合」を参照してください。
データ暗号鍵の更新手順を間違えた場合,バックアップからデータベースを回復し,データ暗号鍵を再度更新してください。
(2) 全HADBユーザの情報を取得する
DBA権限を持っているHADBユーザでディクショナリ表を検索し,全HADBユーザの情報を取得してください。
SELECT "USER_NAME","DBA_PRIVILEGE","CONNECT_PRIVILEGE","SCHEMA_PRIVILEGE",
"AUDIT_ADMIN_PRIVILEGE","AUDIT_VIEWER_PRIVILEGE",
"CRYPTO_ADMIN_PRIVILEGE","AUTHENTICATION_TYPE"
FROM "MASTER"."SQL_USERS"
上記のSELECT文を実行すると,全HADBユーザの認可識別子とそのHADBユーザが持っている権限の一覧が出力されます。
- メモ
-
ここで取得した情報は,後ほどの作業で使用します。
上記のSELECT文の実行結果の各列に出力される情報を説明します。
-
USER_NAME列
HADBユーザの認可識別子が出力されます。
-
DBA_PRIVILEGE列
'Y'が出力されている場合は,そのHADBユーザはDBA権限を持っています。'N'が出力されている場合は,DBA権限を持っていません。
-
CONNECT_PRIVILEGE列
'Y'が出力されている場合は,そのHADBユーザはCONNECT権限を持っています。'N'が出力されている場合は,CONNECT権限を持っていません。
-
SCHEMA_PRIVILEGE列
'Y'が出力されている場合は,そのHADBユーザはスキーマ定義権限を持っています。'N'が出力されている場合は,スキーマ定義権限を持っていません。
-
AUDIT_ADMIN_PRIVILEGE列
'Y'が出力されている場合は,そのHADBユーザは監査管理権限を持っています。'N'が出力されている場合は,監査管理権限を持っていません。
-
AUDIT_VIEWER_PRIVILEGE列
'Y'が出力されている場合は,そのHADBユーザは監査参照権限を持っています。'N'が出力されている場合は,監査参照権限を持っていません。
-
CRYPTO_ADMIN_PRIVILEGE列
'Y'が出力されている場合は,そのHADBユーザは暗号管理権限を持っています。'N'が出力されている場合は,暗号管理権限を持っていません。
-
AUTHENTICATION_TYPE列
HADBユーザのユーザ認証方式が出力されます。'DB'が出力されている場合は,そのHADBユーザはデータベース認証を使用しています。'PAM'が出力されている場合は,そのHADBユーザはPAM認証を使用しています。
(3) adbinitコマンドの初期設定オプションファイルを作成する
adbinitコマンドでデータベースを初期設定し直す必要があるため,現状のDBエリアの構成を反映した初期設定オプションファイル(adbinit.optファイル)を次の手順で作成してください。
- メモ
-
-
現状のDBエリアの構成を反映した初期設定オプションファイルがある場合は,ここで説明する作業を実施する必要はありません。
-
ここで作成した初期設定オプションファイルは,後ほどの作業で使用します。
-
手順
次のすべての操作は,HADB管理者で実行してください。
-
初期設定オプションファイルの基となるファイルを作成する
echo "set adb_init_mst_blk_path = \"$(ls -l $DBDIR/ADBMST \ | awk '{print $NF}')\"" >adbinit.opt echo "set adb_init_wrk_blk_path = \"$(ls -l $DBDIR/ADBWRK \ | awk '{print $NF}')\"" >>adbinit.opt上記のコマンドを実行すると,カレントディレクトリにadbinit.optファイル(初期設定オプションファイルの基となるファイル)が作成されます。
なお,$DBDIRの部分(下線部分)は,DBディレクトリのパスを指定してください。
-
adbdbstatusコマンドを実行する
adbdbstatusコマンドを実行して,データ用DBエリアなどを構成するDBエリアファイルの情報を抽出し,adbinit.optファイルに追加します。
adbdbstatus -d used | grep -E "^Used" | awk -F',' '{print $3, $9}' | awk '!a[$0]++' \ | sed -e '1i set adb_init_dbarea_initialize = Y' \ -e 's/"ADBDIC"/set adb_init_dic_blk_path =/g' \ -e 's/"ADBSTBL"/set adb_init_stbl_blk_path =/g' \ | sed -r 's/^"(.*)" "(.*)"/adbinitdbarea -n \\"\1\\" -i 0K,x -v "\2",\\/g' \ >>adbinit.opt上記のコマンドを実行すると,adbinit.optファイルの内容は次のようになります。
<作成されるadbinit.optファイルの例>
set adb_init_mst_blk_path = "/dev/disk/by-id/wwn-0x60...93bc" set adb_init_wrk_blk_path = "/dev/disk/by-id/wwn-0x60...a67b" set adb_init_dbarea_initialize = Y set adb_init_dic_blk_path = "/dev/disk/by-id/wwn-0x60...e259" set adb_init_stbl_blk_path = "/dev/disk/by-id/wwn-0x60...311b" adbinitdbarea -n \"DBAREA1\" -i 0K,x -v "/dev/disk/by-id/wwn-0x60...0000",\ adbinitdbarea -n \"DBAREA1\" -i 0K,x -v "/dev/disk/by-id/wwn-0x60...0001",\ adbinitdbarea -n \"NEWAREA1\" -i 0K,x -v "/dev/disk/by-id/wwn-0x60...0400",\ adbinitdbarea -n \"NEWAREA1\" -i 0K,x -v "/dev/disk/by-id/wwn-0x60...0401",\ adbinitdbarea -n \"NEWAREA1\" -i 0K,x -v "/dev/disk/by-id/wwn-0x60...0402",\
-
adbinit.optファイルを修正する(その1)
adbinit.optファイルをエディタで開き,初期設定オプションの構文に合わせて内容を修正してください。初期設定オプションについては,マニュアルHADB コマンドリファレンスの初期設定オプションの形式を参照してください。
また,次のことを確認して修正してください。
-
次のオペランドにブロックスペシャルファイルが指定されていない場合は,次のオペランドを削除してください。
-
adb_init_wrk_blk_path
-
adb_init_mst_blk_path
-
adb_init_dic_blk_path
-
adb_init_stbl_blk_path
-
-
-vオプションにブロックスペシャルファイルが指定されていない場合は,次の修正をしてください。
-
-vオプションに指定されているDBエリアファイルがDBディレクトリ直下にある場合
<修正例>
adbinitdbarea -n \"ADBUTBL01\" -i 0K,x -v "$DBDIR/ADBUTBL01",\ ↓下記のように修正する。 adbinitdbarea -n \"ADBUTBL01\" -i 0K,1
$DBDIRの部分は,DBディレクトリのパスが表示されます。上記の例の場合,DBディレクトリの直下にDBエリアファイルADBUTBL01があります。
この場合,次の修正をしてください。
・-vオプション以降の指定を削除する。
・-iオプションに指定している作成ファイル数を1に変更する。
-
-vオプションに指定されているDBエリアファイルがDBディレクトリ直下にない場合
<修正例>
adbinitdbarea -n \"ADBUTBL01\" -i 0K,x -v "$DBDIR/AREAS/ADBUTBL01",\ ↓下記のように修正する。 adbinitdbarea -n \"ADBUTBL01\" -i 0K,1 -f \"AREAS/\"
$DBDIRの部分は,DBディレクトリのパスが表示されます。上記の例の場合,「DBディレクトリ/AREAS」下にDBエリアファイルADBUTBL01があります。
この場合,次の修正をしてください。
・-iオプションに指定している作成ファイル数を1に変更する。
・-vを-fに変更する。
・「"$DBDIR/AREAS/ADBUTBL01"」を「\"AREAS/\"」に変更する。
・末尾の「,\」を削除する。
-
-
-nオプションに指定しているDBエリア名の重複行がある場合,すべての重複行で次の修正をしてください。重複行がない場合は,その行だけ次の修正をしてください。
-
先頭行の-iオプションに指定しているファイル数を,重複行数と同じ数に変更してください。
-
2行目以降については,ブロックスペシャルファイルより前の記述を削除してください。
-
最終行の末尾の「,\」を削除してください。
-
<修正後のadbinit.optファイルの例>
set adb_init_mst_blk_path = "/dev/disk/by-id/wwn-0x60...93bc" set adb_init_wrk_blk_path = "/dev/disk/by-id/wwn-0x60...a67b" set adb_init_dbarea_initialize = Y set adb_init_dic_blk_path = "/dev/disk/by-id/wwn-0x60...e259" set adb_init_stbl_blk_path = "/dev/disk/by-id/wwn-0x60...311b" adbinitdbarea -n \"DBAREA1\" -i 0K,2 -v "/dev/disk/by-id/wwn-0x60...0000",\ "/dev/disk/by-id/wwn-0x60...0001" adbinitdbarea -n \"NEWAREA1\" -i 0K,3 -v "/dev/disk/by-id/wwn-0x60...0400",\ "/dev/disk/by-id/wwn-0x60...0401",\ "/dev/disk/by-id/wwn-0x60...0402" -
-
adbinit.optファイルを修正する(その2)
データ用DBエリアファイルのシンボリックリンクをDBディレクトリ下のサブディレクトリに配置している場合,そのデータ用DBエリアを定義しているadbinitdbareaオペランドに,-fオプションを指定する必要があります。4.では,adbinitdbareaオペランドに-fオプションを指定する必要があるかどうかと,-fオプションに指定するパスを調査します。
なお,3.で-fオプションを指定したadbinitdbareaオペランドについては,4.の作業は不要です。
手順
- メモ
-
手順の各操作にある$DBDIRにはDBディレクトリ名を入力してください。また,実行結果にある$DBDIRにはDBディレクトリ名が表示されます。
-
DBディレクトリ直下のファイルの一覧を表示する
ls $DBDIR
上記のコマンドを実行すると,DBディレクトリ直下のファイルの一覧が表示されます。
<lsコマンドの実行結果の例>
ADBDIC ADBMST ADBSTBL ADBSYS ADBWORK ADBWRK AREAS DBAREA1 DBAREA1.00001 SPOOL
上記の実行結果に,3.の「<修正後のadbinit.optファイルの例>」に指定しているデータ用DBエリア名と同名のファイルがあるかどうかを確認してください。この例の場合,同名のファイルとしてDBAREA1はありますが,NEWAREA1はありません。したがって,データ用DBエリアファイルのシンボリックリンクDBAREA1はDBディレクトリ直下に配置されていますが,シンボリックリンクNEWAREA1はDBディレクトリ直下に配置されていません。シンボリックリンクNEWAREA1は,DBディレクトリ下のサブディレクトリに配置されています。
-
シンボリックリンクNEWAREA1の配置場所を調査する
findコマンドを実行して,a.の実行結果に表示されていないシンボリックリンクNEWAREA1が,DBディレクトリ内のどこに配置されているかを調査してください。
find $DBDIR -name NEWAREA1 2>/dev/null
上記のコマンドを実行すると,DBディレクトリ内に存在するファイル名がNEWAREA1であるファイルの一覧が表示されます。
<findコマンドの実行結果の例>
$DBDIR/AREAS/OLD/NEWAREA1 $DBDIR/AREAS/NEW/NEWAREA1
上記の実行結果のように,異なるパスの同名ファイルが複数表示された場合は,次の手順に進んでください。
パスが1つしか表示されない場合は,d.に進んでください。
-
$DBDIR/AREAS/OLD/NEWAREA1のリンク先を調査する
ls -lコマンドを実行して,b.の実行結果に表示された$DBDIR/AREAS/OLD/NEWAREA1のリンク先を表示してください。
ls -l $DBDIR/AREAS/OLD/NEWAREA1* | sed -e 's/.* -> //g'
<lsコマンドの実行結果の例>
/dev/disk/by-id/wwn-0x60...a000
上記の実行結果と,3.の「<修正後のadbinit.optファイルの例>」に指定しているデータ用DBエリアNEWAREA1の定義の-vオプションに指定しているブロックスペシャルファイルのパスを見比べてください。
この例の場合,上記の実行結果とブロックスペシャルファイルのパスが一致していないため,該当するファイルではありません。
-
$DBDIR/AREAS/NEW/NEWAREA1のリンク先を調査する
ls -lコマンドを実行して,b.の実行結果に表示された$DBDIR/AREAS/NEW/NEWAREA1のリンク先を表示してください。
ls -l $DBDIR/AREAS/NEW/NEWAREA1* | sed -e 's/.* -> //g'
<lsコマンドの実行結果の例>
/dev/disk/by-id/wwn-0x60...0400 /dev/disk/by-id/wwn-0x60...0401 /dev/disk/by-id/wwn-0x60...0402
上記の実行結果と,3.の「<修正後のadbinit.optファイルの例>」に指定しているデータ用DBエリアNEWAREA1の定義の-vオプションに指定しているブロックスペシャルファイルのパスを見比べてください。
この例の場合,上記の実行結果とブロックスペシャルファイルのパスが一致しています。したがって,$DBDIR/AREAS/NEW/NEWAREA1が,該当するファイルとなります。$DBDIR/AREAS/NEW/NEWAREA1の下線部分を,データ用DBエリアNEWAREA1のadbinitdbareaオペランドの-fオプションに指定してください。
<修正後のadbinit.optファイルの例>
set adb_init_mst_blk_path = "/dev/disk/by-id/wwn-0x60...93bc" set adb_init_wrk_blk_path = "/dev/disk/by-id/wwn-0x60...a67b" set adb_init_dbarea_initialize = Y set adb_init_dic_blk_path = "/dev/disk/by-id/wwn-0x60...e259" set adb_init_stbl_blk_path = "/dev/disk/by-id/wwn-0x60...311b" adbinitdbarea -n \"DBAREA1\" -i 0K,2 -v "/dev/disk/by-id/wwn-0x60...0000",\ "/dev/disk/by-id/wwn-0x60...0001" adbinitdbarea -n \"NEWAREA1\" -f \"AREAS/NEW/\" -i 0K,3 \ -v "/dev/disk/by-id/wwn-0x60...0400",\ "/dev/disk/by-id/wwn-0x60...0401",\ "/dev/disk/by-id/wwn-0x60...0402"下線部分の-fオプションを追加します。
-
adbinit.optファイルを修正する(その3)
暗号化対象のDBエリアを確認し,初期設定オプションにDBエリアを暗号化するオプションを指定してください。
DBA権限を持っているHADBユーザで,「付録B.22 ディクショナリ表の検索」の「(41) 暗号化対象のDBエリアの一覧を表示する方法」で説明している作業を実施してください。暗号化対象のDBエリアの一覧が表示されます。
<実行結果の例>
DBAREA_ID DBAREA_TYPE DBAREA_NAME ------------ ----------- ------------------------------------------- 2 DICT ADBDIC 3 WORK ADBWRK 4 STBL ADBSTBL 11 DATA NEWAREA1 KFAA96404-I 4 rows were selected.上記の実行結果から,DICT(ディクショナリ用DBエリア),WORK(作業表用DBエリア),STBL(システム表用DBエリア),DATA(データ用DBエリアNEWAREA1)が暗号化対象のDBエリアであることがわかります。
<修正後のadbinit.optファイルの例>
set adb_init_dic_encrypt = Y ...[a] set adb_init_wrk_encrypt = Y ...[b] set adb_init_stbl_encrypt = Y ...[c] set adb_init_dmkey_path = /HADB/.crypto/adb_dmkey ...[d] : adbinitdbarea -e -n \"NEWAREA1\" -f \"AREAS/NEW/\" -i 0K,3 \ ...[e] -v "/dev/disk/by-id/wwn-0x60...0400",\ "/dev/disk/by-id/wwn-0x60...0401",\ "/dev/disk/by-id/wwn-0x60...0402"[説明]
-
ディクショナリ用DBエリアを暗号化するときに指定するオペランドを追加します。
-
作業表用DBエリアを暗号化するときに指定するオペランドを追加します。
-
システム表用DBエリアを暗号化するときに指定するオペランドを追加します。
-
HADB暗号鍵の出力先ファイル名を指定するオペランドを追加します。
-
データ用DBエリアNEWAREA1を暗号化するときに指定する-eオプション(下線部分)を追加します。
-
-
adbinit.optファイルを保存する
- ■マルチノード機能を使用している場合
-
上記の手順で作成したadbinit.optファイルは,プライマリノードで使用するadbinit.optファイルです。
セカンダリノードまたはワーカーノードで使用するadbinit.optファイルは次の手順で作成してください。
手順
-
全セカンダリノードおよび全ワーカーノードに,上記の手順で作成したadbinit.optファイルを配布する
-
セカンダリノードまたはワーカーノードで,1.で配布したadbinit.optファイルをエディタで開く
-
次のコマンドを実行する
echo "\"$(ls -l $DBDIR/ADBWRK | awk '{print $NF}')\""$DBDIRの部分(下線部分)は,DBディレクトリのパスを指定してください。
-
adb_init_wrk_blk_pathオペランドの指定を修正する
3.のコマンドの実行結果がブロックスペシャルファイルの場合は,実行結果に出力されたファイル名をadb_init_wrk_blk_pathオペランドに指定してください。
ブロックスペシャルファイルではない場合は,adb_init_wrk_blk_pathオペランドを削除してください。
-
adb_init_dbarea_initializeオペランドの指定値をYからNに変更する
-
adbinit.optファイルを保存する
-
全セカンダリノードおよび全ワーカーノードで,2.~6.を実施する
-
(4) 表およびインデクスの定義情報を取得する
データベースの初期設定後に表やインデクスを再定義するため,表およびインデクスの定義情報と,表に対するアクセス権限の情報を次の手順で取得してください。
- メモ
-
ここで取得した情報は,後ほどの作業で使用します。
手順
-
各データ用DBエリアに格納されている表およびインデクスの一覧を取得する
DBA権限を持っているHADBユーザで,「付録B.22 ディクショナリ表の検索」の「(15) DBエリアに格納されている表の表名を調べる場合」および「(16) DBエリアに格納されているインデクスのインデクス名を調べる場合」で説明している作業を実施してください。
すべてのデータ用DBエリアに対してこの作業を実施してください。
-
全ビュー表のビュー表名を取得する
DBA権限を持っているHADBユーザでディクショナリ表を検索してください。
SELECT "TABLE_SCHEMA","TABLE_NAME" FROM "MASTER"."SQL_VIEWS" WHERE "TABLE_SCHEMA" != 'MASTER'上記のSELECT文を実行すると,全ビュー表のビュー表名の一覧が取得できます。
-
表に対するアクセス権限の情報を取得する
DBA権限を持っているHADBユーザでディクショナリ表を検索してください。
SELECT "GRANTOR","GRANTEE","OWNER","SELECT_PRIVILEGE","INSERT_PRIVILEGE", "UPDATE_PRIVILEGE","DELETE_PRIVILEGE","TRUNCATE_PRIVILEGE", "REFERENCES_PRIVILEGE","IMPORT_TABLE_PRIVILEGE","REBUILD_INDEX_PRIVILEGE", "GET_COSTINFO_PRIVILEGE","EXPORT_TABLE_PRIVILEGE","MERGE_CHUNK_PRIVILEGE", "CHANGE_CHUNK_COMMENT_PRIVILEGE","CHANGE_CHUNK_STATUS_PRIVILEGE", "ARCHIVE_CHUNK_PRIVILEGE","UNARCHIVE_CHUNK_PRIVILEGE" FROM "MASTER"."SQL_TABLE_PRIVILEGES" WHERE "TABLE_SCHEMA"=? AND "TABLE_NAME"=?adbsqlコマンドで上記のSELECT文を実行した場合,?パラメタに対する入力データの入力要求があります。最初の入力要求には表のスキーマ名を,2番目の要求には表の表識別子を入力してください。入力するスキーマ名と表識別子は,1.および2.の調査結果に出力されたTABLE_SCHEMA列とTABLE_NAME列のスキーマ名と表識別子を使用してください。
上記のSELECT文の実行結果の各列に出力される情報を説明します。
-
GRANTOR列
アクセス権限を付与したHADBユーザの認可識別子が出力されます。
-
GRANTEE列
アクセス権限を付与されたHADBユーザの認可識別子が出力されます。
-
OWNER列
表の所有者であるHADBユーザの認可識別子が出力されます。
-
上記以外の列
HADBユーザが各種のアクセス権限を持っているかどうかの情報が出力されます。'G'が出力されている場合は,そのアクセス権限を付与権付きで持っています。'Y'が出力されている場合は,そのアクセス権限を持っています。'N'が出力されている場合は,そのアクセス権限を持っていません。
-
-
表およびインデクスの定義情報を取得する
DBA権限を持っているHADBユーザで,「付録B.22 ディクショナリ表の検索」の「(29) 実表の定義情報を調べる場合」および「(30) インデクスの定義情報を調べる場合」で説明している作業を実施してください。
すべての表,およびすべてのインデクスに対してこの作業を実施してください。
- メモ
-
-
HADBでは,表およびインデクスの定義情報を出力する機能を提供していません。そのため,ディクショナリ表を検索して,表およびインデクスの定義情報を取得しておき,データベースの初期設定後に表およびインデクスを再定義できるようにしておく必要があります。
-
表およびインデクスを定義したときの定義情報がある場合は,この作業を実施する必要はありません。
-
-
ビュー表の定義情報を取得する
DBA権限を持っているHADBユーザでディクショナリ表を検索してください。
SELECT "MV"."TABLE_SCHEMA" AS "スキーマ名", "MV"."TABLE_NAME" AS "表識別子", "MS"."DEFINE_SOURCE" AS "ビュー定義文", "ME"."DELETE_RESERVED_WORD" AS "削除予約語", "ME"."DEFINE_VR" AS "定義バージョン" FROM "MASTER"."SQL_VIEWS" "MV", "MASTER"."SQL_DEFINE_SOURCE" "MS", "MASTER"."SQL_DEFINE_ENVIRONMENT" "ME" WHERE "MV"."DEFINE_SOURCE_ID" = "MS"."SOURCE_ID" AND "MV"."VIEW_ID" = "ME"."RESOURCE_ID" ORDER BY "MV"."VIEW_LEVEL"上記のSELECT文を実行すると,全ビュー表の定義時に必要な情報が出力されます。
-
コスト情報を収集している表の一覧を取得する
DBA権限を持っているHADBユーザで,「付録C.9 システム表の検索」の「(1) コスト情報を収集した全実表の表名と収集日時を調べる場合」で説明している作業を実施してください。
(5) 表のデータをエクスポートする
すべての表のデータをエクスポートしてください。表がマルチチャンク表かどうかで手順が異なります。
- 重要
-
-
次の手順の操作は,表の所有者が実行してください。
-
エクスポートした表のデータはデータベース管理の担当者が回収してください。
-
情報漏えいのリスクを低減するために,表の所有者は,作業の完了後にエクスポートした表のデータを削除してください。
-
-
マルチチャンク表の場合
手順
-
チャンクに関する情報を取得する
「付録C.9 システム表の検索」の「(3) 表名から表内の全チャンクの情報を調べる場合」で説明している作業を実施し,チャンクに関する次の情報を取得してください。
-
チャンクID
-
チャンクコメント
-
チャンクの状態
-
チャンクの作成日時
-
チャンクの切り替え日時
- 重要
-
データベースの初期設定後に,再定義した表にデータをインポートします。その際,カレントチャンクは一番最後にインポートする必要があるため,カレントチャンクの情報を記録しておいてください。次の2つの条件をすべて満たすチャンクがカレントチャンクです。
-
チャンクの作成日時が設定されている
-
チャンクの切り替え日時がナル値になっている
-
- メモ
-
ここで取得した情報は,後ほどの作業で使用します。
-
-
adbexportコマンドを実行して,全チャンクのデータをCSVファイルに出力してください。方法については,「11.4.5 チャンク単位にデータをエクスポートする方法」を参照してください。
-
-
マルチチャンク表ではない場合
adbexportコマンドを実行して,表のデータをCSVファイルに出力してください。方法については,「11.1.9 実表のデータをファイルに出力する方法(データをエクスポートする方法)」を参照してください。
(6) 監査証跡機能,同義語検索に関する情報を取得する
-
監査証跡機能を使用している場合
次の手順で監査証跡機能に関する情報を取得してください。
手順
-
adbaudittrail -dコマンドを実行して,監査証跡機能が有効かどうかを確認する
コマンドの実行結果のaudit欄にACTIVEまたはACTIVE(NO OUTPUT)が表示された場合,監査証跡機能が有効です。
-
監査証跡機能が有効の場合,監査管理権限を持っているHADBユーザでディクショナリ表を検索し,監査対象を定義していたかどうかを確認する
SELECT COUNT(*) FROM "MASTER"."SQL_AUDITS"
上記のSELECT文の実行結果が0の場合,監査対象を定義していません。1以上の場合,監査対象を定義しています。
-
-
同義語検索を行っている場合
次の手順で同義語検索に関する情報を取得してください。
手順
-
DBA権限を持っているHADBユーザでシステム表を検索する
SELECT "SYNONYM_DICTIONARY_NAME","CORRECTION_RULE","SYNONYM_DICTIONARY_COMMENT" FROM "MASTER"."STATUS_SYNONYM_DICTIONARIES"上記のSELECT文の実行結果が1行以上の場合,次の手順に進んでください。0行の場合は,2.以降の作業は不要です。
-
同義語一覧定義ファイルを作成する
1.で取得した同義語辞書名(SYNONYM_DICTIONARY_NAME)を使用して,同義語一覧定義ファイルを作成してください。作成方法については,「11.17.14 同義語一覧定義ファイルを再作成する(同義語一覧定義ファイルを紛失した場合)」を参照してください。
-
辞書情報登録ファイルがない場合,辞書情報登録ファイルを作成する
1.で取得した同義語辞書名(SYNONYM_DICTIONARY_NAME),表記ゆれ補正オプション(CORRECTION_RULE),およびコメント(SYNONYM_DICTIONARY_COMMENT)と,2.で作成した同義語一覧定義ファイルを使用して,辞書情報登録ファイルを作成してください。作成方法については,「11.17.1 同義語検索を行うための準備をする」の「(8) 辞書情報登録ファイルを作成する」を参照してください。
-
- メモ
-
ここで取得した情報は,後ほどの作業で必要になります。
(7) データベースを初期設定する
次の手順でデータベースを初期設定してください。
手順
-
adbstopコマンドでHADBサーバを終了する
マルチノード機能を使用している場合は,マルチノード構成のHADBサーバを終了してください。終了方法については,「17.5.2 マルチノード構成のHADBサーバの終了方法」を参照してください。
-
データベースを初期設定する
HADB管理者でadbinitコマンドを実行し,データベースを初期設定してください。
「(3) adbinitコマンドの初期設定オプションファイルを作成する」で作成した初期設定オプションファイルを使用してください。
マルチノード機能を使用している場合は,2.の作業を全ノードで実施してください。実施後,プライマリノードで作成されたHADB暗号鍵ファイルを全ノードに配布してください。配布方法については,「17.30.1 DBエリア暗号化機能の環境設定をする場合」のHADB暗号鍵ファイルの配布を参照してください。
-
サーバ定義を変更する
「(3) adbinitコマンドの初期設定オプションファイルを作成する」で作成した初期設定オプションファイルにadb_init_dmkey_pathオペランドを指定した場合,サーバ定義のadb_crypto_dmkey_pathオペランドにadb_init_dmkey_pathオペランドに指定したHADB暗号鍵の出力先ファイル名(HADB暗号鍵ファイル名)の絶対パスを指定してください。
初期設定オプションファイルにadb_init_dmkey_pathオペランドを指定していない場合は,サーバ定義のadb_crypto_dmkey_pathオペランドを削除してください。
マルチノード機能を使用している場合は,3.の作業を全ノードで実施してください。サーバ定義のadb_crypto_dmkey_pathオペランドを指定する場合は,各ノードに配布したHADB暗号鍵ファイルの絶対パスを指定してください。
-
adbstartコマンドでHADBサーバを開始する
マルチノード構成のHADBサーバを開始する場合は,各ノードでのadbstartコマンドの入力後にHADB暗号鍵利用パスワードの入力要求メッセージ(KFAA90013-Q)が出力されます。詳細については,「17.30.2 マルチノード構成のHADBサーバを開始する場合」を参照してください。
(8) HADBユーザを作成して権限を付与する
CREATE USER文でHADBユーザを作成して,作成したHADBユーザにGRANT文で権限を付与してください。
「(2) 全HADBユーザの情報を取得する」で取得した全HADBユーザの情報を使用して,HADBユーザを作成して権限を付与します。
- 重要
-
-
DBA権限を持っているHADBユーザで,HADBユーザを作成します。このとき,データベース認証を使用するHADBユーザとして作成してください。PAM認証を使用するHADBユーザは,「(11) HADBユーザのユーザ認証方式とパスワードを変更する」でユーザ認証方式をPAM認証に変更します。
-
以降の作業で,データベース管理の担当者が,ここで作成した複数のHADBユーザを使用して行う作業があります。そのため,ここで作成するHADBユーザには,入力が容易なパスワードを設定することを推奨します。以降の作業がすべて完了したあとに,ここで作成したHADBユーザのパスワードをすぐに変更するように徹底してください。
-
HADBユーザの作成と権限を付与するSQL文の例を次に示します。
- (例)
-
認可識別子がCADMINのHADBユーザを作成し,そのHADBユーザに暗号管理権限とCONNECT権限を付与します。
CREATE USER "CADMIN" IDENTIFIED BY 'Password01' GRANT CRYPTO ADMIN,CONNECT TO "CADMIN"
(9) 表およびインデクスを再作成する
データベースの初期設定前に定義していた表およびインデクスを再定義し,表にデータをインポートしてください。また,表に対するアクセス権限も付与してください。手順を次に示します。
手順
-
表およびインデクスを再定義する
データベースの初期設定前に定義していた表およびインデクスをCREATE TABLE文とCREATE INDEX文で再定義してください。
「(4) 表およびインデクスの定義情報を取得する」で取得した次の情報を使用して表およびインデクスを再定義します。
-
表およびインデクスの定義情報
-
表およびインデクスを格納しているデータ用DBエリアの情報
- メモ
-
-
この作業は,データベース管理の担当者が実施してください。定義する表またはインデクスのスキーマ名と同じ認可識別子のHADBユーザを使用して,表またはインデクスを定義してください。
-
データベース管理の担当者は,定義する表またはインデクスのスキーマ名に合わせて,使用するHADBユーザを変えて作業します。そのため,同じスキーマ名の表とインデクスをまとめて定義した方が,HADBユーザを変更する手間が少なくなります。
-
スキーマが定義されていない場合は,CREATE SCHEMA文でスキーマを定義してください。
-
-
ビュー表を再定義する
データベースの初期設定前に定義していたビュー表をCREATE VIEW文で再定義してください。
「(4) 表およびインデクスの定義情報を取得する」で取得した,ビュー表の定義情報を使用してビュー表を再定義します。
- メモ
-
-
「(4) 表およびインデクスの定義情報を取得する」で取得したビュー表の定義情報には,全ビュー表の定義情報が出力されています。出力されているビュー表順に(上から順に)ビュー表を定義してください。
-
この作業は,データベース管理の担当者が実施してください。定義するビュー表のスキーマ名と同じ認可識別子のHADBユーザを使用してビュー表を定義してください。
-
-
表に対するアクセス権限を付与する
再定義した表に対するアクセス権限をGRANT文で付与してください。
- メモ
-
この作業は,データベース管理の担当者が実施してください。使用するHADBユーザは次の手順の中で説明しています。
「(4) 表およびインデクスの定義情報を取得する」で取得した,表に対するアクセス権限の情報を使用して,次の手順でアクセス権限を付与します。
-
「GRANTOR列の値 = OWNER列の値」かつ「GRANTOR列の値≠GRANTEE列の値」の行がある場合,GRANTOR列に出力されているHADBユーザで,GRANTEE列に出力されているHADBユーザにアクセス権限を付与します。各種アクセス権限を持っているかどうかを示す列の値によって,付与するアクセス権限が異なります。'G'が出力されている場合は,付与権付きでアクセス権限を付与します。'Y'が出力されている場合は,アクセス権限を付与します。'N'が出力されている場合は,アクセス権限を付与しません。
-
「a.でアクセス権限を付与されたHADBユーザ = GRANTOR列の値」の行がある場合,GRANTOR列に出力されているHADBユーザで,GRANTEE列に出力されているHADBユーザにアクセス権限を付与します。各種アクセス権限を持っているかどうかを示す列の値によって,付与するアクセス権限が異なります。'G'が出力されている場合は,付与権付きでアクセス権限を付与します。'Y'が出力されている場合は,アクセス権限を付与します。'N'が出力されている場合は,アクセス権限を付与しません。
-
b.の作業を「b.でアクセス権限を付与されたHADBユーザ = GRANTOR列の値」の行が出てこなくなるまで繰り返します。
-
a.~c.の作業をすべての表に対して実行してください。
-
表にデータをインポートする
adbimportコマンドを実行して,表にデータをインポートしてください。
-
マルチチャンク表にデータをインポートする場合
「(5) 表のデータをエクスポートする」でエクスポートしたデータを入力データファイルにして,バックグラウンドインポートを実行してください。
なお,初回のデータインポートの際は,作成モードでデータインポートを実行してください。手順については,「11.1.8 実表にデータを格納する方法(データインポート)」および「11.4.2 マルチチャンク表にデータを格納する方法(バックグラウンドインポート)」を参照してください。
- 重要
-
-
「(5) 表のデータをエクスポートする」で取得した,チャンクコメントおよびチャンクの状態に合わせてオプションを指定してください。
-
カレントチャンクは,一番最後にインポートしてください。「(5) 表のデータをエクスポートする」でカレントチャンクを調べています。
-
-
マルチチャンク表ではない表にデータをインポートする場合
「(5) 表のデータをエクスポートする」でエクスポートしたデータを入力データファイルにして,adbimportコマンドを実行してください。
- メモ
-
この作業は,データベース管理の担当者が実施してください。表の所有者と同じ認可識別子のHADBユーザを使用してデータをインポートしてください。
-
-
コスト情報を収集する
adbgetcstコマンドを実行して,表のコスト情報を収集してください。
「(4) 表およびインデクスの定義情報を取得する」で取得した,コスト情報を収集している表の一覧を使用してください。一覧に表示されている表のコスト情報を収集します。
- メモ
-
-
この作業は,データベース管理の担当者が実施してください。コスト情報を収集する表のスキーマ名と同じ認可識別子のHADBユーザを使用してコスト情報を収集してください。
-
収集したコスト情報は,データベースの初期設定前のコスト情報とは異なる可能性があります。そのため,データベースの初期設定前とはSQL文のアクセスパスが変わる可能性があります。
-
(10) 監査証跡機能,同義語検索の環境設定をする
-
データベースの初期設定前に監査証跡機能を使用していた場合
「12.2 監査証跡機能の環境設定」を参照して,監査証跡機能の環境設定をしてください。
環境設定をする際,「(6) 監査証跡機能,同義語検索に関する情報を取得する」で取得した監査証跡に関する情報を使用してください。監査対象を定義していた場合は,監査対象の定義が必要です。監査対象を定義していない場合は,監査対象の定義は不要です。監査対象の定義方法については,「12.2.7 監査対象の定義」を参照してください。
-
データベースの初期設定前に同義語検索を行っていた場合
「11.17.1 同義語検索を行うための準備をする」を参照して,同義語検索の環境設定をしてください。
「(6) 監査証跡機能,同義語検索に関する情報を取得する」で,同義語一覧定義ファイルおよび辞書情報登録ファイルを作成した場合は,それらのファイルを使用して同義語辞書ファイルを作成してください。
(11) HADBユーザのユーザ認証方式とパスワードを変更する
-
HADBユーザのユーザ認証方式の変更
この時点では,全HADBユーザのユーザ認証方式がデータベース認証になっています。
「(2) 全HADBユーザの情報を取得する」で取得した情報を使用してください。AUTHENTICATION_TYPE列に'PAM'が表示されているHADBユーザは,PAM認証を使用しています。このHADBユーザのユーザ認証方式をPAM認証に変更してください。ユーザ認証方式の変更方法については,「11.6.4 HADBユーザのユーザ認証方式を変更する方法」を参照してください。
-
HADBユーザのパスワードの変更
「(2) 全HADBユーザの情報を取得する」で取得した情報を使用してください。AUTHENTICATION_TYPE列に'DB'が表示されているHADBユーザは,データベース認証を使用しています。このHADBユーザを使用する人に,HADBユーザの認可識別子と設定済みのパスワードを知らせてください。そして,このHADBユーザを使用する人が,HADBユーザのパスワードを変更してください。パスワードの変更方法については,「11.6.2 HADBユーザのパスワードを変更する方法」を参照してください。