跟踪数据库用户执行的操作

时间:2016-03-07 06:26:26

标签: mysql database oracle11g mysql-5.6

我的数据库有三个用户,有多个权限。我想记录每个用户的行为。如何跟踪哪些用户执行了哪些操作?

1 个答案:

答案 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;
/

我希望能帮助你。