6.24.1 DECLARE AUDIT INFO SETの形式と規則
(1) 機能
HiRDBサーバにアクセスするアプリケーションのアカウント情報など,ユーザ任意の接続情報を設定します。設定したユーザ任意接続情報は解除するまで有効となり,SQL実行時にHiRDBサーバの監査証跡に出力されます。
(2) 形式
DECLARE AUDIT INFO SET POS=:埋込み変数, INF=:埋込み変数〔:標識変数〕
(3) オペランド
(a) POS=:埋込み変数
情報を設定したいユーザ付加情報の番号をINTEGER型の埋込み変数で指定します。各ユーザ付加情報に該当する番号は次のとおりです。
-
1:ユーザ付加情報1
-
2:ユーザ付加情報2
-
3:ユーザ付加情報3
(b) INF=:埋込み変数〔:標識変数〕
ユーザ任意接続情報をVARCHAR型(領域長100バイト以内)の埋込み変数で指定します。設定済みの情報を解除する場合は,ナル値を指定してください。ユーザ任意接続情報にはユーザ付加情報1〜3があり,それぞれ監査証跡に出力されます。
既定文字集合以外の文字集合は指定できません。
(4) 共通規則
-
使用する埋込み変数は,埋込み変数宣言節で宣言してください。
-
エラーコードはSQLCODEに返されます。
-
ユーザ任意接続情報が既に設定されている状態でDECLARE AUDIT INFO SET を再度実行した場合は,設定済みのユーザ任意接続情報が更新されます。
-
設定したユーザ任意接続情報は,DECLARE AUDIT INFO SETでナル値を指定して解除するまで有効です。DECLARE AUDIT INFO SETで設定したユーザ任意接続情報の有効範囲を,次の図に示します。
図6‒6 DECLARE AUDIT INFO SETで設定したユーザ任意接続の有効範囲 -
CONNECT実行前にDECLARE AUDIT INFO SETでユーザ任意接続情報を設定した場合は,CONNECT時にその情報が引き継がれます。
-
ユーザ任意接続情報が設定されている状態でDISCONNECTを実行しても,ユーザ任意接続情報は解除されません。解除する場合は,INFにナル値を指定してDECLARE AUDIT INFO SETを実行してください。
-
複数接続時は,接続ハンドル単位でユーザ任意接続情報を設定してください。
(5) 留意事項
-
CONNECT文の実行時には,ユーザ任意接続情報は監査証跡に出力されません。
(6) 使用例
(例1)ユーザ任意接続情報(ユーザ付加情報1〜3)を埋込み変数で指定して設定します。
EXEC SQL BEGIN DECLARE SECTION ; SQL TYPE IS VARCHAR(100) udata ; long pos ; EXEC SQL END DECLARE SECTION ; strcpy(udata.str,"userA") ; udata.len = strlen(udata.str) ; pos = 1; EXEC SQL DECLARE AUDIT INFO SET POS=:pos, INF=:udata ; strcpy(udata.str," user data B ") ; udata.len = strlen(udata.str) ; pos = 2; EXEC SQL DECLARE AUDIT INFO SET POS=:pos, INF=:udata ; strcpy(udata.str," user data C ") ; udata.len = strlen(udata.str) ; pos = 3; EXEC SQL DECLARE AUDIT INFO SET POS=:pos, INF=:udata ;
(例2)ユーザ任意接続情報(ユーザ付加情報1〜3)の設定内容を解除します。
EXEC SQL BEGIN DECLARE SECTION ; SQL TYPE IS VARCHAR(100) udata ; long pos ; short ind ; EXEC SQL END DECLARE SECTION ; ind = -1; pos = 1; EXEC SQL DECLARE AUDIT INFO SET POS=:pos, INF=:udata:ind ; pos = 2; EXEC SQL DECLARE AUDIT INFO SET POS=:pos, INF=:udata:ind ; pos = 3; EXEC SQL DECLARE AUDIT INFO SET POS=:pos, INF=:udata:ind ;