在某些应用里,需要知道谁对表进行了操作,进行了什么操作,所为责任的追朔。在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作了一个插入的操作,在这个表里就记录得很详细了。
管理好数据库的用户下,查询这个表,就能够追踪到责任人了。

Mysql对用户操作加审计功能——初级版的更多相关文章

  1. Mysql对用户操作加审计功能——高级版

    在MYSQL中,每个连接都会先执行init-connect,进行连接的初始化.我们可以在这里获取用户的登录名称和thread的ID值.然后配合binlog,就可以追踪到每个操作语句的操作时间,操作人等 ...

  2. 【转】mysql利用init-connect增加访问审计功能

    mysql的连接首先都是要通过init-connect初始化,然后连接到实例. 我们利用这一点,通过在init-connect的时候记录下用户的thread_id,用户名和用户地址实现db的访问审计功 ...

  3. mysql基于init-connect+binlog完成审计功能

    目前社区版本的mysql的审计功能还是比较弱的,基于插件的审计目前存在于Mysql的企业版.Percona和MariaDB上,但是mysql社区版本有提供init-connect选项,基于此我们可以用 ...

  4. linux下用户操作记录审计环境的部署记录

    通常,我们运维管理人员需要知道一台服务器上有哪些用户登录过,在服务器上执行了哪些命令,干了哪些事情,这就要求记录服务器上所用登录用户的操作信息,这对于安全维护来说很有必要.废话不多说了,下面直接记录做 ...

  5. Mysql 纪录用户操作日志

    有时,我们想追踪某个数据库操作记录,如想找出是谁操作了某个表(比如谁将字段名改了). 二进制日志记录了操作记录,线程号等信息,但是却没有记录用户信息,因此需要结合init-connect来实现追踪. ...

  6. mysql 命令行操作入门(详细讲解版)

    之前分享过多次Mysql主题,今天继续分享mysql命令行入门   1. 那么多mysql客户端工具,为何要分享命令行操作? -快捷.简单.方便 -在没有客户端的情况下怎么办 -如果是mysql未开启 ...

  7. mysql 之审计 init-connect+binlog完成审计功能

    mysql基于init-connect+binlog完成审计功能 目前社区版本的mysql的审计功能还是比较弱的,基于插件的审计目前存在于Mysql的企业版.Percona和MariaDB上,但是my ...

  8. 如何实现MySQL数据库使用情况的审计

    如何实现MySQL数据库使用情况的审计   最佳答案   mysql的审计功能 mysql服务器自身没有提供审计功能,但是我们可以使用init-connect + binlog的方法进行mysql的操 ...

  9. mysql创建用户以及授权

    Mysql新建用户操作 方法一: mysql> insert into mysql.user(Host,User,Password)  values("localhost", ...

随机推荐

  1. 网页项目——i家居网站

    本文介绍一个网页项目--i家居网站,小妹初来乍到,欢迎大家评论建议O(∩_∩)O~ 详细源代码.各种框架的实现以及素材均已上传百度云,需要的可以下载: 首页展示 用户注册页面 用户登录页面 商家注册页 ...

  2. Spring相关:jdom学习:读取xml文件

    云课堂马士兵的spring2.5课程中提到的 用JDOM读取XML文件需先用org.jdom.input.SAXBuilder对象的build()方法创建Document对象,然后用Document类 ...

  3. apanda安装

  4. jersey处理支付宝异步回调通知的问题:java.lang.IllegalArgumentException: Error parsing media type 'application/x-www-form-urlencoded; text/html; charset=UTF-8'

    tcpflow以流为单位分析请求内容,非常适合服务器端接口类服务查问题 这次遇到的问题跟支付宝支付后的回调post结果有关 淘宝的代码例子: public void doPost(HttpServle ...

  5. 转摘: CSDN linxianliang5201314 的 blog ------sql解释执行顺序

    我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动 大,那么我么还能保证下一段时间系统还能流畅的运行吗?我么 ...

  6. Python、PIP环境变量的配置

    Python安装的路径:D:\Python35 pip的环境变量 Python和pip的PATH: PIP下载链接:https://pypi.python.org/pypi/pip 随意解压好,然后C ...

  7. Codeforces Round #379 (Div. 2) 解题报告

    题目地址 本次CF是在今天早上深夜进行,上午有课就没有直接参加.今天早上上课坐到后排参加了virtual participation.这次CF前面的题目都非常的水,不到10分钟就轻松过了前两题,比较郁 ...

  8. git 创建版本库

    服务器安装后git后 1.在repositories仓库文件夹中执行git init aa.git --bare  创建aa的中心库(注意建立aa版本库时当前登录用户必须为git的相关用户,并保证/d ...

  9. SQLite简单使用说明

    System.Data.SQLite.dll下载地址 http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki 选择. ...

  10. Day6 google Geocoding API

    在看机器学习实战中K-means一章,练习中需要调用Yahoo PlaceFinder API 为地点添加经纬度,语言是python.申请到了appid但调用好像还要收费,要填写银行卡号才能用,没管那 ...