我的数据库有三个用户,有多个权限。我想记录每个用户的行为。如何跟踪哪些用户执行了哪些操作?
答案 0 :(得分:0)
部门表的第一个Crate跟随表包含dno,dname,loc。
create table dept_log
(
userCode number(5),
userEvent varchar2(10),
edate date,
odno number(7),
odname varchar2(10),
oloc varchar2(10),
ndno number(7),
ndname varchar2(10),
nloc varchar2(10)
)
现在在插入,更新和删除后创建触发器。
create trigger tri_keep_track_on_operation
after insert or delete or update
on dept
for each row
begin
if inserting then
insert into dept_log values(usercode,'insert',sysdate,null,null,null,:new.deptno,:new.dname,:new.loc);
dbms_output.put_line(' AFTER INSERT ');
elsif deleting then
insert into dept_log values(usercode,'delete',sysdate,:old.deptno,:old.dname,:old.loc,null,null,null);
dbms_output.put_line(' AFTER DELETE ');
elsif updating then
insert into dept_log values(usercode,'update',sysdate,:old.deptno,:old.dname,:old.loc,:new.deptno,:new.dname,:new.loc);
dbms_output.put_line(' AFTER UPDATE ');
end if;
end;
/
我希望能帮助你。