24.8.1 監査証跡表の列構成の詳細
監査証跡表の列構成を次の表に示します。
列名称 |
列の内容 |
列のデータ型 |
NULL値 の指定 |
|
---|---|---|---|---|
USER_NAME |
監査対象のイベント実行者の認可識別子です。 HiRDB管理者や一般OSユーザが実行するコマンド又はユティリティの場合は,OSユーザ名が記録されます。※6 |
MVARCHAR(30) |
なし |
|
EXEC_DATE |
イベントの実行日です。 イベント実行日とは,監査証跡の出力要求をしたサーバが,監査証跡バッファに監査証跡の出力を要求するときの標準時刻の日を示しています。 |
DATE |
なし |
|
EXEC_TIME |
イベントの実行時刻です。 イベント実行時刻とは,監査証跡の出力要求をしたサーバが,監査証跡バッファに監査証跡の出力を要求するときの標準時刻を示しています。 |
TIME |
なし |
|
EXEC_TIME_MICRO |
イベントの実行時刻です(単位:マイクロ秒)。 イベント実行時刻とは,監査証跡の出力要求をしたサーバが,監査証跡バッファに監査証跡の出力を要求するときの標準時刻を示しています。 |
INTEGER |
なし |
|
EVENT_TYPE |
イベントタイプです。イベントタイプ及びイベントサブタイプについては,「イベントタイプ及びイベントサブタイプの詳細」を参照してください。 |
CHAR(3) |
なし |
|
EVENT_SUBTYPE |
イベントサブタイプです。イベントタイプ及びイベントサブタイプについては,「イベントタイプ及びイベントサブタイプの詳細」を参照してください。 |
CHAR(3) |
なし |
|
EVENT_RESULT |
イベントの実行結果です。権限のチェック又はイベントが成功したかどうかが記録されます。 S:権限のチェック又はイベントに成功しました。 F:権限のチェック又はイベントに失敗しました。 U:イベントの一部が失敗しました。 |
CHAR(1) |
なし |
|
USED_PRIVILEGE |
イベントを実行したときに使用した権限です。※1イベントの終了時には‘△△△’(空白3文字)が記録されます。 AUD:監査権限 CNT:CONNECT権限 DBA:DBA権限 DEL:DELETE権限 INS:INSERT権限 OWN:所有者 RDA:RDエリア利用権限 SCH:スキーマ定義権限 SEL:SELECT権限 SYS:HiRDB管理者 UPD:UPDATE権限 USG:順序数生成子使用権限 |
CHAR(3) |
なし |
|
UAP_NAME |
イベント発行元のUAP名です。※2 UAP名が30文字未満の場合は,UAP名の後ろに’△’(空白)が合計30文字になるまで設定されます。 それ以外の場合はNULL値が記録されます。 |
VARCHAR(30) |
あり |
|
SERVICE_NAME |
イベント発行元のUAPが要求したサービス名です。OpenTP1のUAPの場合はSPP又はMHPに要求したサービスの名称になります。 OpenTP1以外のUAPの場合,連続した31個の*(アスタリスク)が記録されます。 それ以外の場合はNULL値が記録されます。 |
VARCHAR(31) |
あり |
|
IP_ADDRESS |
イベント発行元のIPアドレスです。イベント発行元のIPアドレスが識別できない場合はNULL値が記録されます。 |
VARCHAR(63) |
あり |
|
PROCESS_ID |
イベント発行元のプロセスIDです。イベント発行元のプロセスIDが識別できない場合はNULL値が記録されます。 コマンド又はユティリティの場合は,実行されたコマンドのプロセスIDが記録されます。 システムによる監査証跡の上書き開始は監査証跡管理サーバプロセスのプロセスIDが記録されます。 Type4 JDBCドライバから接続した場合は,0が記録されます。 それ以外の場合は,CONNECTしたシングルサーバ又はフロントエンドサーバのプロセスIDが記録されます。 |
INTEGER |
あり |
|
THREAD_ID |
イベント発行元のスレッドIDです。イベント発行元のスレッドIDが識別できない場合はNULL値が記録されます。 |
INTEGER |
あり |
|
HOST_NAME |
イベントを受け付けたホスト名です。pdunitオペランドの-xオプションに指定したホスト名が記録されます。系切り替え機能を使用している場合は,現用系のホスト名が記録されます。 イベントを受け付けたホスト名が識別できない場合はNULL値が記録されます。 |
VARCHAR(32) |
あり |
|
UNIT_NAME |
イベントを受け付けたユニット識別子です。pdunitオペランドの-uオプションに指定したユニット識別子が記録されます。 イベントを受け付けたユニット識別子が識別できない場合はNULL値が記録されます。 |
CHAR(4) |
あり |
|
SERVER_NAME |
イベントを受け付けたサーバ名です。HiRDB/シングルサーバの場合はシングルサーバ名が,HiRDB/パラレルサーバの場合はフロントエンドサーバ名が記録されます。pdstartオペランドの-sオプションに指定したサーバ名が記録されます。 イベントを受け付けたサーバ名が識別できない場合はNULL値が記録されます。 |
VARCHAR(8) |
あり |
|
CONNECT_NUMBER |
イベント発行者のコネクト通番です。イベント発行者のコネクト通番が識別できない場合はNULL値が記録されます。 |
INTEGER |
あり |
|
SQL_NUMBER |
イベントのSQL通番です。イベントのSQL通番が識別できない場合はNULL値が記録されます。 |
INTEGER |
あり |
|
OBJECT_SCHEMA |
オブジェクト情報の詳細※3 |
イベントの権限チェックの対象になるオブジェクトの所有者名です。オブジェクトの所有者が識別できない場合はNULL値が記録されます。 |
MVARCHAR(30) |
あり |
OBJECT_NAME |
イベントの権限チェックの対象になるオブジェクト名です。オブジェクト名が識別できない場合はNULL値が記録されます。 |
MVARCHAR(30) |
あり |
|
OBJECT_TYPE |
イベントの権限チェックの対象になるオブジェクトの種別です。オブジェクトの種別が識別できない場合はNULL値が記録されます。 ALS:別名 AUF:監査証跡ファイル FNC:関数 IDX:インデクス LST:リスト PRC:プロシジャ RDA:RDエリア SCH:スキーマ SEQ:順序数生成子 TBL:表 TRG:トリガ TYP:データ型 VIW:ビュー表 |
CHAR(3) |
あり |
|
PRIVILEGE_TYPE |
イベントによって付与,削除,又は変更した権限です。権限が識別できない場合はNULL値が記録されます。 AUD:監査権限 CNT:CONNECT権限 DBA:DBA権限 DEL:DELETE権限 INS:INSERT権限 RDA:RDエリア利用権限 SCH:スキーマ定義権限 SEL:SELECT権限 UPD:UPDATE権限 |
CHAR(3) |
あり |
|
PRIVILEGE_SCHEMA |
イベントによって権限を付与,削除,又は変更されたユーザの認可識別子です。又は,イベント対象になったユーザの認可識別子です。 認可識別子が識別できない場合はNULL値が記録されます。
|
MVARCHAR(30) |
あり |
|
SECURITY_OPERAND |
セキュリティ監査機能に関するオペランドの値です。HiRDB開始時のオペランドの値です。開始時以外はNULL値が記録されます。 セキュリティ監査機能に関するオペランドの値については,「セキュリティ監査機能に関するオペランドの値」を参照してください。 |
VARCHAR(256) |
あり |
|
AUDIT_TRAIL_TYPE |
監査証跡の種別です。イベントの結果を示す監査証跡と,イベント実行中の権限チェックの結果を示す監査証跡を区別するための値を記録します。 権限チェック:NULL イベント終了:E |
CHAR(1) |
あり |
|
SQL_CODE |
SQLコード又は終了コードです。監査記録の対象となるイベント終了時,SQLによるイベントに対してはSQLコードを,ユティリティ(又はコマンド)に対しては終了コードを記録します。権限チェック時はNULL値が記録されます。 イベント終了時のイベント成否エントリの値は,このコードの値によって決定します。監査記録エントリの各コードとイベント成否の詳細については,「SQLコード又は終了コードとイベント成否の詳細」を参照してください。 |
INTEGER |
あり |
|
FROM_AUDFILE_NAME |
スワップ元の監査証跡ファイル名です。監査証跡ファイル名が識別できない場合はNULL値が記録されます。 |
MVARCHAR(30) |
あり |
|
TO_AUDFILE_NAME |
スワップ先の監査証跡ファイル名です。監査証跡ファイル名が識別できない場合はNULL値が記録されます。 |
MVARCHAR(30) |
あり |
|
SECURITY_PARM_TYPE |
CONNECT関連セキュリティ機能に関する変更種別です。※4 |
CHAR(4) |
あり |
|
BEFORE_SECURITY_PARM |
変更前のCONNECT関連セキュリティ機能の設定値です。※4 設定値が10文字未満の場合,設定値の後ろを空白で埋めて(設定値+空白が10文字になるまで)記録されます。 |
CHAR(10) |
あり |
|
AFTER_SECURITY_PARM |
変更後のCONNECT関連セキュリティ機能の設定値です。※4 設定値が10文字未満の場合,設定値の後ろを空白で埋めて(設定値+空白が10文字になるまで)記録されます。 |
CHAR(10) |
あり |
|
AUDIT_TABLE_OPTION |
監査証跡表オプションです。権限チェック時は記録されません。次に示す場合に記録されます。
Y:操作対象オブジェクトが監査証跡表 V:操作対象オブジェクトが監査証跡表を基表としたビュー表 L:操作対象オブジェクトが監査証跡表を基表としたリスト NULL値:上記以外又は権限チェック時 監査証跡表オプションの出力有無の詳細については,「監査証跡表オプションの出力有無」を参照してください。 |
CHAR(1) |
あり |
|
ACCESS_COUNT |
ユーザが,オブジェクト(実表,ビュー表,及びリスト)に対して検索,挿入,更新,及び削除をした行数です。取得できるアクセス件数は0〜2147483647で,アクセス件数の取得に失敗した場合はNULL値が記録されます。 アクセス件数の詳細については,「アクセス件数の詳細」を参照してください。 |
INTEGER |
あり |
|
SQL_SOURCE |
実行したSQL文です。一つのSQL文で複数のオブジェクトが操作される場合,最初の監査証跡にSQL文が記録され,以降の監査証跡のSQL文にはNULL値が記録されます。また,次の場合もNULL値が記録されます。
記録するSQL文の長さは,システム共通定義のpd_aud_sql_source_sizeオペランドで指定します。記録するSQL文の長さがシステム定義の指定値よりも長い場合は,SQL文の先頭から指定値までの内容が記録され,残りは切り捨てられます。 |
BINARY(2000000) |
あり |
|
SQL_DATA |
実行したSQL文で入力に指定した埋込み変数,又はSQL記述領域のデータが記録されます。一つのSQL文で複数のオブジェクトが操作される場合,最初の監査証跡にSQLデータが記録され,以降の監査証跡のSQLデータにはNULL値が記録されます。また,次の場合もNULL値が記録されます。
記録するSQLデータの長さは,システム共通定義のpd_aud_sql_data_sizeオペランドで指定します。記録するSQLデータの長さがシステム定義の指定値よりも長い場合は,SQLデータの先頭から指定値までの内容が記録され,残りは切り捨てられます。SQLデータの詳細については,「SQLデータの詳細」を参照してください。 |
BINARY(1000000) |
あり |
|
USER_INFO_1 |
埋込み言語DECLARE AUDIT INFO SETを宣言し,ユーザ付加情報1〜3に埋込み変数を設定している場合,各ユーザ付加情報の値が記録されます。ただし,次の場合はNULL値が記録されます。
|
VARCHAR(100) |
あり |
|
USER_INFO_2 |
VARCHAR(100) |
あり |
||
USER_INFO_3 |
VARCHAR(100) |
あり |
||
PRODUCT_INFO_1 |
HiRDBの関連製品(Cosminexusのバージョン07-50以降)と連携している場合,監査記録の対象となるイベントには,HiRDBの関連製品からのルートアプリケーション情報が記録されます。該当する情報がない場合,又は情報が認識できない場合は,NULL値が記録されます。 |
VARCHAR(255) |
あり |
|
PDLOAD_TIMESTAMP |
pdloadコマンド実行による監査証跡表へのデータ登録(監査証跡表へのデータロード)時の時刻印です。※5 時刻印はシステムマネジャのあるサーバマシンの時刻印を使用し,一度のpdloadの実行ですべて同じ値を記録します。 |
TIMESTAMP(2) |
あり |
|
PDLOAD_SEQNUM |
1回のpdloadコマンド実行による監査証跡表へのデータ登録時の通番です。※5 pdloadコマンドの実行ごとに1〜10けたの10進数の値(1〜(231−1))を設定します。pdloadコマンドを実行している間に最大値(231−1)に到達した場合,1に戻して記録します。 |
INTEGER |
あり |
- 注
-
-
NULL値の指定がありの列の場合は非ナル値制約にNULLが設定されています。NULL値なしの列の場合は非ナル値制約にNOT NULLが設定されています。
-
バージョンアップの前後で監査証跡表の列構成が変わる場合,バージョンアップ後にバージョンアップ前のデータを監査証跡表に登録すると,既存行の新規追加列にはNULL値が設定されます。
-
- 注※1
-
DBA権限または監査人権限が必要なディクショナリ表を参照すると,DBAまたはSELのどちらかを出力します。監査人権限が必要なディクショナリ表を参照すると,AUDまたはSELのどちらかを出力します。
- 注※2
-
検索時のキーとして使用する場合は,CAST指定によってCHAR(30)に属性を変換して条件式に指定してください。
(例)
SELECT * FROM SQL_AUDIT_TRAIL WHERE UAP_NAME=CAST('UAP11' AS CHAR(30));
- 注※3
-
- 権限チェック時:
-
権限チェックの対象となるオブジェクトを記録します。ただし,実行者の権限チェックをした場合は,チェック対象のオブジェクトはないため記録しません。
(例)
-
表T1に対するアクセス権限をチェックした場合の対象オブジェクト:表T1
-
実行者がDBA権限を持っているかチェックした場合の対象オブジェクト:NULL値
-
- イベント終了時:
-
イベントの対象となるオブジェクトを記録します。イベントの対象に指定したオブジェクトがない場合は,オブジェクト種別は表として記録されます。
(例)
-
表を検索した場合の対象オブジェクト:検索した表
-
- 注※4
-
次に示す場合に記録されます。なお,記録される情報については,「CONNECT関連セキュリティ機能使用時に記録される情報」を参照してください。
-
CONNECT関連セキュリティ機能の設定を変更した場合
-
パスワードを登録又は変更した場合
-
- 注※5
-
監査証跡ファイルには記録されません。
- 注※6
-
OSユーザ名は30バイトまで記録されます。31バイト以降は切り捨てます。
- 〈この項の構成〉
(1) イベントタイプ及びイベントサブタイプの詳細
イベントタイプ及びイベントサブタイプの詳細を次の表に示します。
(2) セキュリティ監査機能に関するオペランドの値
セキュリティ監査機能に関するオペランドの値を次の表に示します。また,オペランドの値を記録するときのデータサイズを次の図に示します。
オペランド名 |
データサイズ |
格納される値 |
---|---|---|
pd_audit |
1バイト |
Y又はN |
pd_aud_file_name |
最大167バイト |
監査証跡ファイル用のHiRDBファイルシステム領域名 |
pd_aud_max_generation_size |
最大4バイト |
1〜5240 |
pd_aud_max_generation_num |
最大3バイト |
2〜200 |
pd_aud_no_standby_file_opr |
最大10バイト |
down又はforcewrite |
pd_aud_async_buff_size |
最大7バイト |
0,4096〜6553600 |
pd_aud_async_buff_count |
最大4バイト |
1〜6500 |
pd_aud_file_wrn_pnt |
最大6バイト |
0〜100,0〜99 |
pd_audit_def_buffer_size※ |
最大7バイト |
0〜2000000 |
pd_aud_async_buff_retry_intvl※ |
最大4バイト |
0〜1000 |
pd_aud_sql_source_size※ |
最大7バイト |
0〜2000000 |
pd_aud_sql_data_size※ |
最大7バイト |
0〜1000000 |
pd_aud_auto_loading※ |
1バイト |
Y又はN |
- 注※
-
このオペランドはバージョンアップによって追加されたものです。バージョン08-02より前のHiRDBで作成した監査証跡ファイルを,バージョンアップ後の監査証跡表に登録した場合は,次の指定値が仮定されます。
オペランド名
仮定される指定値
pd_audit_def_buffer_size
0
pd_aud_async_buff_retry_intvl
50
pd_aud_sql_source_size
0
pd_aud_sql_data_size
0
pd_aud_auto_loading
N
図24‒9 セキュリティ監査機能に関するオペランドの値を記録するときのデータ形式
(3) SQLコード又は終了コードとイベント成否の詳細
SQLコード又は終了コードとイベント成否の詳細を次の表に示します。
イベント名称 |
SQLコード又は 終了コードの値 |
意味 |
イベント 成否の値 |
備考 |
---|---|---|---|---|
各種SQL |
0以上 |
成功 |
S |
− |
負 |
失敗 |
F |
||
pdstart |
0 |
成功 |
S |
− |
4 |
成功 |
S |
||
8 |
失敗 |
F |
次に示す場合は監査証跡を取得できません。
|
|
pdstop |
0 |
成功 |
S |
監査証跡管理サーバプロセス終了後に失敗となった場合は,成功の監査証跡を出力します。 |
4 |
成功 |
S |
− |
|
8 |
失敗 |
F |
||
pdmod(監査人の登録,監査証跡表の作成) |
0 |
成功 |
S |
− |
8 |
失敗 |
F |
||
pdaudrm |
0 |
成功 |
S |
− |
8 |
失敗 |
F |
||
pdaudbegin |
0 |
成功 |
S |
− |
4 |
一部失敗 |
U |
||
8 |
失敗 |
F |
次に示す場合は監査証跡を取得できません。
|
|
pdaudend |
0 |
成功 |
S |
− |
8 |
失敗 |
F |
||
pdacunlck |
0 |
成功 |
S |
− |
8 |
失敗 |
F |
||
pdaudswap |
0 |
成功 |
S |
監査証跡ファイルの上書き時に,スワップ元及びスワップ先の監査証跡ファイル名が記録されます。 |
8 |
失敗 |
F |
監査証跡ファイルの上書き時に,スワップ元の監査証跡ファイル名が記録されます。スワップ先の監査証跡ファイル名にはNULL値が記録されます。 |
|
pdload |
0 |
成功 |
S |
− |
4 |
成功 |
S |
||
8 |
失敗 |
F |
||
pddefrev |
0 |
成功 |
S |
− |
4 |
成功 |
S |
||
8 |
失敗 |
F |
||
12 |
失敗 |
F |
||
pdrorg |
0 |
成功 |
S |
− |
4 |
成功 |
S |
||
8 |
失敗 |
F |
||
pdexp |
0 |
成功 |
S |
− |
4 |
成功 |
S |
||
8 |
失敗 |
F |
||
12 |
失敗 |
F |
||
pdconstck |
0 |
成功 |
S |
− |
4 |
成功 |
S |
警告終了(整合性違反あり) |
|
8 |
失敗 |
F |
− |
|
pdaudatld |
0 |
成功 |
S |
− |
4 |
成功 |
S |
警告終了(自動データロード機能は停止できているため,成功として扱います) |
|
8 |
失敗 |
F |
− |
(凡例)−:該当しません。
(4) CONNECT関連セキュリティ機能使用時に記録される情報
CONNECT関連セキュリティ機能使用時に記録される情報を次の表に示します。
機能名 |
イベント タイプ |
イベント サブタイプ |
変更 種別 |
変更前後に記録される値 |
---|---|---|---|---|
連続認証失敗許容回数 |
SYS |
SPR |
ECNT |
1〜10,又はNULL値 |
アカウントロック期間 |
LCKM |
10〜44640,UNLIMITED,又はNULL値 |
||
パスワードの最小許容バイト数 |
MINL |
1〜15,又はNULL値 |
||
認可識別子の指定禁止 |
USID |
RESTRICT,UNRESTRICT,又はNULL値 |
||
単一文字種の指定禁止 |
SMLN |
|||
IPアドレスによる接続制限の登録又は削除 |
CNST |
変更前はNULL値が記録されます。 変更後は次のように記録します。
また,指定した制約名称をOBJECT_NAME列に格納します。 |
||
パスワードの変更※ |
PRV又はAUD |
GRT |
CPWD |
NULL値 |
- 注
-
次に示す場合はNULL値が記録されます。
-
変更前後に記録される値で,ディクショナリ表SQL_SYSPARAMS中の対応する列に値がない場合(設定を新規で行うときなど)
-
NULL値の場合
-
値が識別できない場合
また,パスワードの文字列制限の事前チェック時は,変更種別ごとに監査証跡を取得しますが,変更前後に記録される値にはNULL値が記録されます。
-
- 注※
-
イベントタイプ,イベントサブタイプ,及びSQLコードだけでは,GRANT文の実行時にパスワードが実際に変更されたかどうかHiRDBが判断できません。GRANT文の実行時に登録済みユーザのパスワードが変更された場合に限り,変更種別にCPWDを設定します。パスワードの変更時に出力される変更種別を次の表に示します。
表24‒25 パスワードの変更時に出力される変更種別 登録済みユーザのパスワード有無
GRANT CONNECT,DBA,又はAUDITの実行結果
変更種別
パスワードあり
パスワードの変更
CPWD
パスワードの削除
CPWD
パスワードの変更なし
NULL値
パスワードなし
パスワードありに変更
CPWD
パスワードなしのまま
NULL値
注 ここでいうユーザ,パスワードとはHiRDBが管理するユーザとパスワードのことです。
(5) 監査証跡表オプションの出力有無
監査証跡表オプションの出力有無を次の表に示します。
実行結果 |
失敗の要因 |
監査証跡表オプションの出力有無 |
---|---|---|
成功 |
− |
出力する |
失敗※ |
対象のオブジェクトが存在しない |
出力しない(NULL値) |
対象のオブジェクトが監査証跡表のため,エラーになる場合 |
出力する |
|
上記以外のエラー |
出力する(情報が取得できない場合は出力しない) |
(凡例)−:該当しません。
- 注※
-
監査証跡表オプションを出力していない場合に,監査証跡表であるかどうかを調べるには,監査記録エントリのオブジェクトの所有者とオブジェクトの名称の組み合わせなどから判断してください。
(6) アクセス件数の詳細
アクセス件数の詳細を次の表に示します。
アクセス手段 |
アクセス件数 |
|
---|---|---|
SQL |
SELECT |
SELECT文での結果集合に対して,ユーザがアクセス(CLOSEが成功,又は失敗するまでFETCH)した行数です。なお,ブロック転送の場合は,1ブロックに含まれる行数をアクセス件数とします。 問合せに複数表を指定した場合,その複数の表すべてに対して,同じアクセス件数とします。次のどちらかの場合,アクセス件数がNULL値になります。
|
INSERT |
挿入した行数です。 |
|
UPDATE |
更新した行数です。 |
|
DELETE |
削除した行数です。 |
|
ユティリティ |
pdload |
表ごとのデータロード件数です。 |
pdrorg |
表ごとのアンロード件数,及び表ごとのリロード件数です。 |
|
pdconstck |
制約違反となったキー値の数の総和です。 |
表の指定箇所 |
アクセス件数 |
備考 |
|
---|---|---|---|
スカラ副問合せ |
値式を指定できる箇所 |
NULL値 |
例については,図「アクセス件数の出力例(その7)」参照 |
行副問合せ |
行値構成子を指定できる箇所 |
NULL値 |
例については,図「アクセス件数の出力例(その8)」参照 |
UPDATE文のSET句 |
NULL値 |
例については,図「アクセス件数の出力例(その9)」参照 |
|
表副問合せ |
IN述語の右側 |
NULL値 |
例については,図「アクセス件数の出力例(その10)」参照 |
限定述語の右側 |
NULL値 |
例については,図「アクセス件数の出力例(その11)」参照 |
|
EXISTS述語 |
NULL値 |
例については,図「アクセス件数の出力例(その12)」参照 |
|
FROM句の導出表 |
非NULL値※ |
例については,図「アクセス件数の出力例(その13)」参照 |
- 注※
-
FROM句の導出表の検索結果が,ユーザに直接返らない場合は,アクセス件数がNULL値となります(例については,図「アクセス件数の出力例(その14)」参照)。
アクセス手段がSELECTの場合の,アクセス件数の出力例を次の図に示します。
-
図24‒10 アクセス件数の出力例(その1) 図24‒11 アクセス件数の出力例(その2) 図24‒12 アクセス件数の出力例(その3)
注 表の実体については,図「アクセス件数の出力例(その2)」と同じです。
注 表の実体については,図「アクセス件数の出力例(その2)」と同じです。
注 表の実体については,図「アクセス件数の出力例(その5)」と同じです。
注 表の実体については,図「アクセス件数の出力例(その5)」と同じです。
注 表の実体については,図「アクセス件数の出力例(その5)」と同じです。
注 表の実体については,図「アクセス件数の出力例(その5)」と同じです。
注 表の実体については,図「アクセス件数の出力例(その5)」と同じです。
注 表の実体については,図「アクセス件数の出力例(その5)」と同じです。
注 表の実体については,図「アクセス件数の出力例(その5)」と同じです。
注 表の実体については,図「アクセス件数の出力例(その5)」と同じです。
注 表の実体については,図「アクセス件数の出力例(その5)」と同じです。
(7) SQLデータの詳細
(a) SQLデータの構造
SQLデータの構造を次の図に示します。
- (凡例)
-
n:SQLNに対応する,SQLVARの個数を示します。SQLDA(SQL記述領域)の構造については,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。
注1 ( )内は,領域の長さ(単位:バイト)を示します。
注2 記録されるエンディアン形式は,サーバのOSに依存します。
次に,SQLデータを構造するHEADER領域,SQLDA(SQL記述領域)及び入力データ領域の各構造について説明します。
●HEADER領域
HEADER領域の構造を次の図に示します。また,各構成要素の詳細を次の表に示します。
注 ( )内は,領域の長さ(単位:バイト)を示します。
レベル番号※ |
領域名 |
データ型 |
長さ |
内容 |
|
---|---|---|---|---|---|
1 |
1 |
HEADER |
− |
16 |
SQLデータの管理情報です。 |
2 |
SQLDATALEN |
unsigned long |
4 |
記録前のSQLデータのデータ長です。 |
|
2 |
SQLARRAY |
long |
4 |
配列型の変数を使って複数行分のデータを設定した場合の配列要素数です。配列型の変数を使用しない場合は,1が設定されます。 |
|
2 |
RESERVED |
char |
8 |
システムが使用する予備領域です。 |
- (凡例)
-
−:該当しません。
- 注※
-
HEADER領域での包含関係を示しています。この場合,レベル番号1の領域は,レベル番号2の領域から構造されていることを示します。
●SQLDA及び入力データ領域
SQLDA及び入力データ領域の構造を次の図に示します。SQLDA(SQL記述領域)の構造については,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。
- (凡例)
-
n:SQLNに対応する,SQLVARの個数を示します。
r:入力データ領域の長さを示します。入力データ領域の長さは,次の計算式で求められます。
入力データ領域の長さ=SQLデータの長さ−HEADER領域の長さ−SQLDAの長さ
注1 ( )内は,領域の長さ(単位:バイト)を示します。
注2 破線の矢印は,SQLDAからのオフセットを示します。
(b) 入力値の構造
入力データ領域を構成する入力値は,次に示す要素によって構造が異なります。詳細については,それぞれの参照先にある図を参照してください。
入力値の種類 |
標識変数の有無 |
参照先 |
---|---|---|
単純構造の入力値 |
あり |
|
なし |
||
繰返し構造の入力値 |
あり |
|
なし |
||
固定長のデータ型で配列を使った入力値 |
あり |
|
なし |
||
可変長のデータ型で配列を使った入力値 |
あり |
|
なし |
- ●入力値の種類が,単純構造の入力値の場合
-
図24‒27 単純構造の入力値(標識変数あり)の構造 図24‒28 単純構造の入力値(標識変数なし)の構造 - (凡例)
-
d1,d2:データの長さを示します。データの長さについては,マニュアル「HiRDB Version 9 UAP開発ガイド」の「SQL記述領域に設定するデータコードとデータの長さ」を参照してください。
p1:標識変数の長さを示します。SQLVARのSQLCODに対応します。
注 破線の矢印は,SQLDAからのオフセットを示します。
- 〔説明〕
-
データ及び標識変数は,SQLVARのSQLCOD及びSQLLEN,又はSQLVAR_LOBのSQLCOD及びSQLLOBLENに設定されたデータ型に合わせた構造になります。
データ及び標識変数は,境界調整を行った領域に格納されます。このため,各領域の長さには境界調整で発生した領域の長さも含まれます。
データの記述については,マニュアル「HiRDB Version 9 UAP開発ガイド」の「SQLのデータ型とC言語のデータ記述」又は「SQLのデータ型とCOBOL言語のデータ記述」を参照してください。
- ●入力値の種類が,繰返し構造の入力値の場合
-
図24‒29 繰返し構造の入力値(標識変数あり)の構造 図24‒30 繰返し構造の入力値(標識変数なし)の構造 - (凡例)
-
x:標識変数の個数を示します。
x1,x2:要素数で指定した,データの個数を示します。
d3,d4:SQLVARのSQLSYSに対応する,データの長さを示します。
注1 ( )内は,領域の長さ(単位:バイト)を示します。
注2 破線の矢印は,SQLDAからのオフセットを示します。
注※1 繰返し構造全体の標識変数が格納されます。
注※2 各要素の標識変数が格納されます。
- 〔説明〕
-
SQLVARのSQLXDIMが2以上の場合,繰返し指定で指定した要素数分の要素が格納されます。
データは,SQLVARのSQLCODに設定されたデータ型に合わせた構造になります。
データ及び標識変数は,境界調整を行った領域に格納されます。このため,各領域の長さには境界調整で発生した領域の長さも含まれます。
データの記述については,マニュアル「HiRDB Version 9 UAP開発ガイド」の「SQLのデータ型とC言語のデータ記述」又は「SQLのデータ型とCOBOL言語のデータ記述」を参照してください。
- ●入力値の種類が,固定長のデータ型で配列を使った入力値の場合
-
図24‒31 固定長のデータ型で配列を使った入力値(標識変数あり)の構造 図24‒32 固定長のデータ型で配列を使った入力値(標識変数なし)の構造 - (凡例)
-
y:標識変数の個数を示します。
y1,y2:HEADER領域のSQLARRAYに対応する,配列の要素数を示します。
d5,d6:SQLVARのSQLSYSに対応する,データの長さを示します。
p5:SQLVARのSQLCODに対応する,標識変数の長さを示します。
注 破線の矢印は,SQLDAからのオフセットを示します。
- 〔説明〕
-
HEADER領域のSQLARRAYが2以上の場合,配列型で指定した要素数分の要素が格納されます。
データ及び標識変数は,SQLVARのSQLCOD及びSQLLEN,又はSQLVAR_LOBのSQLCOD及びSQLLOBLENに設定されたデータ型に合わせた構造になります。
データ及び標識変数は,境界調整を行った領域に格納されます。このため,各領域の長さには境界調整で発生した領域の長さも含まれます。
データの記述については,マニュアル「HiRDB Version 9 UAP開発ガイド」の「SQLのデータ型とC言語のデータ記述」又は「SQLのデータ型とCOBOL言語のデータ記述」を参照してください。
- ●入力値の種類が,可変長のデータ型で配列を使った入力値の場合
-
図24‒33 可変長のデータ型で配列を使った入力値(標識変数あり)の構造 図24‒34 可変長のデータ型で配列を使った入力値(標識変数なし)の構造 - (凡例)
-
y:標識変数の個数を示します。
y3,y4:HEADER領域のSQLARRAYに対応する,配列の要素数を示します。
d7,d8:データの長さを示します。
p7:SQLVARのSQLCODに対応する,標識変数の長さを示します。
注 破線の矢印は,SQLDAからのオフセットを示します。
- 〔説明〕
-
HEADER領域のSQLARRAYが2以上の場合,配列型で指定した要素数分の要素が格納されます。
データ及び標識変数は,SQLVARのSQLCOD及びSQLLEN,又はSQLVAR_LOBのSQLCOD及びSQLLOBLENに設定されたデータ型に合わせた構造になります。
データ及び標識変数は,境界調整を行った領域に格納されます。このため,各領域の長さには境界調整で発生した領域の長さも含まれます。
データ及び標識変数の長さについては,マニュアル「HiRDB Version 9 UAP開発ガイド」の「SQL記述領域に設定するデータコードとデータの長さ」を参照してください。
データの記述については,マニュアル「HiRDB Version 9 UAP開発ガイド」の「SQLのデータ型とC言語のデータ記述」又は「SQLのデータ型とCOBOL言語のデータ記述」を参照してください。
(c) 出力例
監査証跡に出力されるSQLデータの例を次に示します。
在庫表にデータを追加します。使用する埋込み変数とデータ型,及びデータの内容は次のとおりです。
列名 |
埋込み変数 |
データ型 |
データの内容 |
---|---|---|---|
商品コード |
xscode |
char(5) |
202M |
商品名 |
xsname |
char(17) |
ポロシャツ |
色 |
xcol |
char(3) |
赤 |
単価 |
xtanka |
int |
3640 |
数量 |
xgryo |
int |
0 |
数量 |
igryo |
short |
-1 |
実行するSQL文は次のとおりです。
EXEC SQL INSERT INTO ZAIKO(SCODE,SNAME,COL,TANKA,ZSURYO) VALUES(:xscode,:xsname,:xcol,:xtanka,:xgryo:igryo);
SQL文を実行すると,監査証跡のSQLデータは次のように記録されます。
〔説明〕
-
HEADER領域が格納されます。
-
SQLDAが格納されます。
-
入力データ領域が格納されます。
SQLVAR又はSQLVAR_LOBの個数は,SQLDAのSQLD(下線部)で分かります。この例の場合,SQLVAR又はSQLVAR_LOBに対応するデータは5個あり,それぞれ次のように格納されています。
-
1番目のSQLVARから,データはCHAR型で長さが4バイト,標識変数なしと分かります。データは,SQLDAから16進数で60hバイト進んだ領域に4バイト格納されます(32 30 32 4d)。
-
2番目のSQLVARから,データはCHAR型で長さが16バイト,標識変数なしと分かります。データは,SQLDAから16進数で64hバイト進んだ領域に16バイト格納されます(83 7c 83 8d 83 56 83 83 83 63 20 20 20 20 20 20)。
-
3番目のSQLVARから,データはCHAR型で長さが2バイト,標識変数なしと分かります。データは,SQLDAから16進数で74hバイト進んだ領域に2バイト格納されます(90 d4)。
-
4番目のSQLVARから,データはINTEGER型で長さが4バイト,標識変数なしと分かります。データは,SQLDAから16進数で78hバイト進んだ領域に4バイト格納されます(00 00 0e 38)。
-
5番目のSQLVARから,データはINTEGER型で長さが4バイト,標識変数ありと分かります。データは,SQLDAから16進数で7chバイト進んだ領域に2バイト格納されます(ff ff)。
-