【发布时间】:2016-06-20 15:12:05
【问题描述】:
我的数据库拥有三个具有多种权限的用户。我想记录每个用户的行为。如何跟踪哪些用户执行了哪些操作?
【问题讨论】:
-
1. Oracle 和 mysql 是两种不同的产品。请从您的标签中删除其中之一。 2.你拥有的3个用户,是数据库级用户(db中3个账号)还是应用级用户(db中1个账号)?
标签: mysql database oracle11g mysql-5.6
我的数据库拥有三个具有多种权限的用户。我想记录每个用户的行为。如何跟踪哪些用户执行了哪些操作?
【问题讨论】:
标签: mysql database oracle11g mysql-5.6
department 表的第一个 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;
/
希望对你有帮助。
【讨论】: