前処理関数および後処理関数について
JDBCデータ・ソースへの接続の作成(前処理関数)またはクローズ(後処理関数)時に実行する「パブリッシャ」のPL/SQL関数を定義できます。
これらの2つのフィールドにより、管理者は接続がデータベースに対して実行される前にユーザーのコンテキスト属性を設定して、接続が抽出エンジンによって中断された後で属性を無視できます。
システム変数 :xdo_user_nameは、ログイン・ユーザー名をPL/SQL関数コールに渡すバインド変数として使用できます。 ログイン・ユーザーのコンテキストをこのように設定すると、データ・ソース・レベル(SQL問合せレベルではなく)でデータを保護できます。
たとえば、次のサンプル関数があるとします:
FUNCTION set_per_process_username (username_in IN VARCHAR2)
RETURN BOOLEAN IS
BEGIN
SETUSERCONTEXT(username_in);
return TRUE;
END set_per_process_username
データベースに接続するたびにこの関数をコールするには、「前処理機能」フィールドに次のように入力 : set_per_process_username(:xdo_user_name)
別の使用例として、ユーザーが接続または切断するたびにLOGTAB表に行を挿入する場合があります:
CREATE OR REPLACE FUNCTION BIP_LOG (user_name_in IN VARCHAR2, smode IN VARCHAR2)
RETURN BOOLEAN AS
BEGIN
INSERT INTO LOGTAB VALUES(user_name_in, sysdate,smode);
RETURN true;
END BIP_LOG;
「前処理機能」フィールドに、次のように入力 : BIP_LOG(:xdo_user_name)
新しい接続がデータベースに対して実行されると、LOGTAB表にログインします。 SMODE値ではアクティビティを開始または終了として指定します。 この関数を「後処理機能」としてコールするとともに、次の表に示すような結果が返されます。