mysql 操作审计_Mysql对用户操作加审计功能——初级版

在某些应用里,需要知道谁对表进行了操作,进行了什么操作,所为责任的追朔。在MYSQL里,可以使用触发器实现。

1:创建测试表

mysql> create table A(a int);

Query OK, 0 rows affected (0.01 sec)

2:创建追踪表,里面包含表名称,操作类型,操作时间,操作员,操作机器IP地址

mysql> create table trace(tbname varchar(30),DML_type varchar(10),DML_time datetime,DML_user varchar(30),DML_IP varchar(30));

Query OK, 0 rows affected (0.01 sec)

3:在A表创建触发器

create trigger insert_a after insert on  A1

for each row

insert into trace values ('A1','INSERT',NOW(),substring_index(current_User(),'@',1),substring_index(current_User(),'@',-1));

4:插入测试数据

mysql> insert into A values(1);

Query OK, 1 row affected (0.00 sec)

mysql> select * from trace;

+--------+----------+---------------------+----------+-----------+

| tbname | DML_type | DML_time | DML_user | DML_IP |

+--------+----------+---------------------+----------+-----------+

| A | INSERT | 2010-11-29 17:58:12 | root | localhost |

+--------+----------+---------------------+----------+-----------+

1 row in set (0.00 sec)

mysql> select * from trace;

+--------+----------+---------------------+----------+--------------+

| tbname | DML_type | DML_time | DML_user | DML_IP |

+--------+----------+---------------------+----------+--------------+

| A | INSERT | 2010-11-29 17:58:12 | root | localhost |

| A | INSERT | 2010-11-29 17:58:38 | cpc | 192.168.0.30 |

+--------+----------+---------------------+----------+--------------+

2 rows in set (0.00 sec)

mysql>

这样,当0.30的机器以CPC用户登录时候,对A作了一个插入的操作,在这个表里就记录得很详细了。

管理好数据库的用户下,查询这个表,就能够追踪到责任人了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值