mysql数据监控 触发器_简单利用触发器监控表记录的更改

本文介绍了如何使用MySQL触发器简单地监控表记录的更改,以满足特定的监控需求。通过创建触发器和日志记录表,可以追踪谁对表进行了插入、更新或删除操作,并记录相关信息。
摘要由CSDN通过智能技术生成

监控数据库用户行为可以利用数据库审计,LogMiner日志挖掘,触发器等手段,但前两者操作起来比较麻烦,利用触发器可简单的满足一些特殊的监控需求。 以下是利用触发器监控表记录被谁更改的例子: ---显示授权给所有用户查询这两个视图grant select on sys.v_

监控数据库用户行为可以利用数据库审计,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;

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值