mysql基于init-connect+binlog完成审计功能 目前社区版本的mysql的审计功能还是比较弱的,基于插件的审计目前存在于Mysql的企业版.Percona和MariaDB上,但是mysql社区版本有提供init-connect选项,基于此我们可以用它来完成审计功能. init-connect参数说明: http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_init_connect s…
目前社区版本的mysql的审计功能还是比较弱的,基于插件的审计目前存在于Mysql的企业版.Percona和MariaDB上,但是mysql社区版本有提供init-connect选项,基于此我们可以用它来完成审计功能. init-connect参数说明: http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_init_connect step1:创建用户数据库表 set names utf8 crea…
背景: 假设这么一个情况,你是某公司mysql-DBA,某日突然公司数据库中的所有被人为删了. 尽管有数据备份,但是因服务停止而造成的损失上千万,现在公司需要查出那个做删除操作的人. 但是拥有数据库操作权限的人很多,如何排查,证据又在哪? 是不是觉得无能为力? mysql本身并没有操作审计的功能,那是不是意味着遇到这种情况只能自认倒霉呢? 本文就将讨论一种简单易行的,用于mysql访问审计的思路. 关键字:init—connect,binlog,trigger 概述: 其实mysql本身已经提供…
转载自:https://blog.51cto.com/13941177/2173620 一.简介 1.概述 mysql本身已经提供了详细的sql执行记录–general log ,但是开启它有以下几个缺点: 1)无论sql有无语法错误,只要执行了就会记录,导致记录大量无用信息,后期的筛选有难度. 2)sql并发量很大时,log的记录会对io造成一定的印象,是数据库效率降低. 3)日志文件很容易快速膨胀,不妥善处理会对磁盘空间造成一定影响. 2.原理 1) 由于审计的关键在于DML语句,而所有的D…
[导读] 最近ITPUB技术论坛特意组织网络性讨论活动,关于数据库审计的话题,分享各自公司如何实现数据库审计.个人经验和构想,以及数据库审计的技巧,刚好有网友发了一个典型的审计需求,要帮他分析,以及教其如何实现,为此把内容整理成一片文章分享,供大家参考. MySQL触发器的用处还是非常多地,关键看业务需要,曾经给大家介绍过基于存储引擎MEMORY加触发器的应用场景之一剖析.通过阅读本文,将会告诉大家:触发器的语法知识.触发器的限制.审计案例分析和实现,将逐一讲解. n  语法 CREATE [D…
原文:http://blog.jobbole.com/110934/ 什么是MySQL主从复制 简单来说,就是保证主SQL(Master)和从SQL(Slave)的数据是一致性的,向Master插入数据后,Slave会自动从Master把修改的数据同步过来(有一定的延迟),通过这种方式来保证数据的一致性,就是主从复制. MySQL主从能解决什么问题 一.高可用 因为数据都是相同的,所以当Master挂掉后,可以指定一台Slave充当Master继续保证服务运行,因为数据是一致性的(如果当插入Ma…
mysql的连接首先都是要通过init-connect初始化,然后连接到实例. 我们利用这一点,通过在init-connect的时候记录下用户的thread_id,用户名和用户地址实现db的访问审计功能. 实现步骤 1.创建审计用的库表. 为了不与业务的库冲突,单独创建自己的库: #建库表代码 create database db_monitor ; use db_monitor ; CREATE TABLE accesslog ( thread_id int(11) DEFAULT NULL,…
MySQL社区版没有自带的设计功能或插件.调研发现MariaDB的audit plugin 同样适用于MySQL,支持更细粒度的审计,比如只审计DDL操作,满足我们的需求.因为最近测试环境的某表结构经常性的被变更且数据被清空的情况,所以引入MariaDB的插件对DDL进行审计 MariaDB audit plugin 官网 MariaDB audit plugin 下载地址 查看MySQL的插件路径 mysql> show global variables like '%plugin%'; +-…
下面方式是在线开启,重启后会失效: 1.mysql社区版没有审计插件,先获取server_audit.so文件,我是先在一台测试服务器上安装了一个mariadb数据库,然后搜索find / -name server_audit.so文件,scp复制出来的,也可以直接去mariadb官网下载一个二进制包找: #防止server_audit 插件被卸载,需要在配置文件中添加 server_audit=FORCE_PLUS_PERMANENT 4.重启mysql服务 /etc/init.d/mysql…
MySQL复制介绍 默认情况 下复制是异步进行的,从库也不需要一直连接到主库来同步数据 MySQL复制的数据粒度可以是主实例上所有的数据库,也可以是指定的一个或多个数据库 ,也可以是一个数据库里的指定的表 MySQL复制所带来的优势在于: 1.扩展能力: 通过复制功能可以将MySQL的性能压力分担到一个或多个slave上.这要求所有的写操作和修改操作都必须在Master上完成,而读操作可以被分配到一个或多个slave上.将读写分离到不同服务器执行之后,MySQL的读写性能得到提升 2.数据库备份…