□MSSQLserver2000にて、SQLトレースに任意のユーザー情報を埋め込む方法


SQLServerのユーザ定義イベントを使うとOracleの
DBMS_SESSION.SET_IDENTIFIERプロシージャのようにセッション固有の情報をト
レースに出力できます。

(1)SQLトレースで、ユーザ定義イベントの0番(イベントID:82に対応)を設定し
ておく、
(2)以下のようなコマンドでユーザ定義のイベントを発生させる

DECLARE @eventID int
DECLARE @userinfo nvarchar(128)
DECLARE @userdata varbinary(8000)
SET @eventid=82
SET @userinfo='USER COMMENT TEST' ← 任意の文字列
SET @userdata=NULL
EXEC sp_trace_generateevent @eventid,@userinfo,@userdata
go


イベントを発生されると設定した任意の文字列がTextDataに記録されますので、
APを修正してもらうとコネクションプール使用時でも3層アプリでのクライアン
ト特定に使用できます。
別の監査レコードに出力されますので解析が面倒ですが、後から分析する分には
問題ないと思います。

タグ:

MSSQL2K
最終更新:2006年09月06日 18:15