簡單利用觸發器監控表記錄的更改

2021-12-30 11:05:13 字數 1134 閱讀 4532

監控資料庫使用者行為可以利用資料庫審計,logminer日誌挖掘,觸發器等手段,但前兩者操作起來比較麻煩,利用觸發器可簡單的滿足一些特殊的監控需求。

以下是利用觸發器監控表記錄被誰更改的例子:

---顯示授權給所有使用者查詢這兩個檢視

grant select on sys.v_$session to public;

grant select on sys.v_$sqlarea to public;

---建立日誌記錄表

create table log_monitor_tab(sql_text varchar2(400),

username varchar2(30),

schemaname varchar2(30),

osuser varchar2(30),

ip_address varchar2(15),

machine varchar2(50),

program varchar2(50),

modifytime date);

----建立觸發器

create or replace trigger tri_monitor_tab

before insert or update or delete

on table_name --填入相應的表名

for each row

begin

insert into log_monitor_tab

select sq.sql_text,

se.username,

se.schemaname,

se.osuser,

sys_context('userenv', 'ip_address'),

se.machine,

se.program,

sysdate

from v$sqlarea sq, v$session se

where sq.address = se.sql_address

and se.sid = userenv('sid');

end;

---查詢日誌表log_monitor_tab記錄

select * from log_monitor_tab order by modifytime asc;

用觸發器記錄資料庫表記錄更改日誌

create trigger dbo triinf organlog on dbo.inf organ after delete,update as begin set nocount on 設定增加觸發器的表 declare table varchar 100 set table inf orga...

MYSQL觸發器簡單記錄

介紹 觸發器是與表有關的資料庫物件,指在insert update delete之前或之後,觸發並執行觸發器中定義的sql語句集合.觸發器的這種特性可以協助應用在資料庫端確保資料的完整性,日誌記錄,資料校驗等操作.觸發器型別 new 和 old 的使用 insert 型觸發器 new 表示將要或者已...

利用觸發器實現日誌記錄

我們在做專案的過程中,很多時候都要涉及到 日誌。日誌無非就是記錄使用者對資料的一些修改,新增,刪除操作。所以,我們很容易聯想到用觸發器來實現。假如現在日誌需要記錄當使用者對userinfo表進行的update,insert,delete操作時的表名,時間,以及操作的表的關鍵字值,修改者。userin...