監控資料庫使用者行為可以利用資料庫審計,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...