當創建DB2觸發器(db2版本10.1 LUW)時,我正在尋找捕獲啓動觸發器的用戶標識。使用db2觸發器來標識啓動的用戶
例如,如果用戶插入數據,後插入觸發器應寫入誰插入數據的日誌。這不是爲了生產目的 - 僅僅是確定誰在更新/插入測試數據。
當創建DB2觸發器(db2版本10.1 LUW)時,我正在尋找捕獲啓動觸發器的用戶標識。使用db2觸發器來標識啓動的用戶
例如,如果用戶插入數據,後插入觸發器應寫入誰插入數據的日誌。這不是爲了生產目的 - 僅僅是確定誰在更新/插入測試數據。
您可以獲取SESSION_USER特殊註冊表變量的值。作爲替代看看SYSTEM_USER註冊表。如果使用SET SESSION AUTHORIZATION
之類的功能或使用TRUSTED CONTEXTS
,則會有差異。
試試這個作爲一個快速測試:
select session_user from sysibm.sysdummy1;
select system_user from sysibm.sysdummy1;
謝謝。這很有幫助。把當此一起,什麼是正確的語法納入觸發此: 上userid.css_defn 引用新創建觸發器userid.logchange 插入 後正 每一行模式DB2SQL 開始原子 聲明sessuser =從sysibm.sysdummy1中選擇session_user; 聲明sysuser =從sysibm.sysdummy1中選擇system_user; ('** Insert record ** css:'|| coalesce(rtrim(char(n.css_id)),'')||'會話用戶:' || sessuser | 插入到userid.applog |'系統用戶:'|| sysuser) –
你不需要任何選擇,只需在sessuser的定義中訪問session_user –
數據庫可以記錄哪些查詢已運行,哪些用戶已運行它們。爲什麼不使用該功能? – 2017-06-02 15:04:07
「db2 version 10」建議DB2 for z/OS,是否正確? – mustaccio
你指的是db2diag日誌嗎?我們正在使用DB2 LUW。傾向於通過觸發器獲取數據。 –