MySQL触发器之审计功能(转)】的更多相关文章

[导读] 最近ITPUB技术论坛特意组织网络性讨论活动,关于数据库审计的话题,分享各自公司如何实现数据库审计.个人经验和构想,以及数据库审计的技巧,刚好有网友发了一个典型的审计需求,要帮他分析,以及教其如何实现,为此把内容整理成一片文章分享,供大家参考. MySQL触发器的用处还是非常多地,关键看业务需要,曾经给大家介绍过基于存储引擎MEMORY加触发器的应用场景之一剖析.通过阅读本文,将会告诉大家:触发器的语法知识.触发器的限制.审计案例分析和实现,将逐一讲解. n  语法 CREATE [D…
人员表people 字段:id,peopleNumber,name,namePinyin,sex,birthday,nation. namePinyin不用填写,根据name自动生成. wordlib为字库表,内容为文字拼音对照 创建表 create table people( id int auto_increment primary key, peopleNumber ), name ), namePinyin ), sex ), birthday date, nation ) )chara…
目前社区版本的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基于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的连接首先都是要通过init-connect初始化,然后连接到实例. 我们利用这一点,通过在init-connect的时候记录下用户的thread_id,用户名和用户地址实现db的访问审计功能. 实现步骤 1.创建审计用的库表. 为了不与业务的库冲突,单独创建自己的库: #建库表代码 create database db_monitor ; use db_monitor ; CREATE TABLE accesslog ( thread_id int(11) DEFAULT NULL,…
第一种经验证,有效. 第一种用macfee的mysql审计插件. 下载地址:https://bintray.com/mcafee/mysql-audit-plugin/release/1.1.4-725#files 请根据实际版本进行下载. 下载后解压缩并存放到mysql的lib文件夹 > show variables like 'plugin_dir';+---------------+------------------------------+| Variable_name | Value…
转载自:https://blog.51cto.com/13941177/2173620 一.简介 1.概述 mysql本身已经提供了详细的sql执行记录–general log ,但是开启它有以下几个缺点: 1)无论sql有无语法错误,只要执行了就会记录,导致记录大量无用信息,后期的筛选有难度. 2)sql并发量很大时,log的记录会对io造成一定的印象,是数据库效率降低. 3)日志文件很容易快速膨胀,不妥善处理会对磁盘空间造成一定影响. 2.原理 1) 由于审计的关键在于DML语句,而所有的D…
下面方式是在线开启,重启后会失效: 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…
paramiko模块是一个远程连接服务器,全真模拟ssh2协议的python模块,借助paramiko源码包中的demos目录下:demo.py和interactive.py两个模块实现简单的堡垒机+审计功能.编写的run_demo.py脚本,可以根据登陆堡垒机的用户信息在数据库查询该用户所有可以登陆的服务器列表,用户可以根据索引选择登陆.为防止用户退出脚本后不中断shell会话,导致不安全的因素,故在用户退出run_demo.py脚本时,会结束已经连接的shell会话,直接退出堡垒机. 一.修…
SQLSERVER2008新增的审核/审计功能 很多时候我们都需要对数据库或者数据库服务器实例进行审核/审计 例如对失败的登录次数进行审计,某个数据库上的DDL语句进行审计,某个数据库表里面的delete语句进行审计 事实上,我们这些审计的需求基本上都是为了一个目的:防黑客 上面的这些审计需求无非就是看一下有哪些人试图入侵数据库服务器,入侵了之后是否有drop表,是否有delete数据 在SQLSERVER2008及以前版本可以选择的方案有 1.服务器级别DDL触发器和数据库级别的DDL触发器(…
数据库的审计日志占用大量空间,当时是为了测试审计功能开启的,现在需要关闭 # /data/mysql_data]# du -sh * 124G audit.log # 查询审计相关参数 mysql> show variables like '%audit%'; +-----------------------------+---------------+ | Variable_name | Value | +-----------------------------+--------------…
1. 前言         为了安全和操作的可追溯性考虑,越来越多的公司增加了审计功能.mysql5.5推出了相关的审计功能,到5.6.20功能进一步完好.算是勉强可用了.尽管细粒度方面做的不是太好.可是兴许版本号还是能够期待一下的.这里主要介绍下相关的功能和特性. 2. 开启审计 2.1 配置文件载入 mysql5.6中的审计是通过audit_log插件来实现的,我们能够在配置文件里载入该插件来开启. [mysqld] plugin-load=audit_log.so 假设希望数据库强制开启审…
一.简介 数据库审计能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库受到的风险行为进行告警,对攻击行为进行阻断,它通过对用户访问数据库行为的记录.分析和汇报,用来帮助用户事后生成合规报告.事故追根溯源,同时加强内外部数据库网络行为记录,提高数据资产安全. MySQL企业版有此功能,属于收费组件,此测试社会版使用第三方开源插件. 二.下载地址 https://bintray.com/mcafee/mysql-audit-plugin/release/1.1.4-72…
mysql的连接首先都是通过init_connect初始化,然后连接到实例. 我们利用这一点,通过在init_connect的时候记录下用户的thread_id,用户名和用户地址实现db的访问审计功能. 首先我们先创建审计用的库表 为了不与业务的库冲突,单独创建自己的库: create database db_monitor; use db_monitor; create table monitor ( thread_id int(11) default null,      #线程id log…
干货 | MySQL数据库安全之审计 原创: 李勇 京东云开发者社区  今天 每家公司都希望业务高速增长,最好能出几个爆款产品或者爆款业务,从而带动公司营收高速攀升.但站在数据库管理员的角度,这却是实实在在的压力,业务高速增长必然带来数据量的暴增.数据库系统的选型和设计是支撑整个业务系统的重要因素. MySQL数据库是基于云原生的数据库产品之一,云原生为云数据库提供了重要动力,相比于传统自建数据库,云数据库比单个数据库具有更大的弹性和可扩展性. 数据库审计主要用于监视并记录对数据库服务器的各类操…
对于MySQL.Percona.MariaDB三家都有自己的审计插件,但是MySQL的审计插件是只有企业版才有的,同时也有很多第三方的的MySQL的审计插件,而Percona和MariaDB都是GPL的审计插件.MariaDB的审计插件,默认是没有安装的的,安装该插件并开启审计功能后,可以将对数据库的各种操作记录保存下来,以便追踪操作来源及具体操作. MariaDB版本: Server version: 10.4.19-MariaDB (该版本自带了server_audit插件) 一.Maria…
数据审计,英语表达是Audit,是追踪数据变化的过程,记录数据变化前后的值,供参考分析.通过设置,ERP可以追踪一个表的所有字段的变化,也可以只记录指定的字段的值变化.欧美企业每年都有独立的审计部门,从总经理到下层部门员工,逐个审查过去发生的经济业务的帐面数据与实际是否一致.ERP中的审计功能,通常会记录下一个表字段的值的变化.ERP系统通过LLBL Gen Pro ORM框架做数据访问层,先了解ORM提供的数据审计功能. 审计功能的两个重要部分:记录的变化以及导致变化的动作,持久化变化的数据.…
审计是对选定的用户动作的监控和记录,通常用于: u          审查可疑的活动.例如:数据被非授权用户所删除,此时安全管理员可决定对该 数据库的所有连接进行审计,以及对数据库的所有表的成功地或不成功地删除进行审计. u          监视和收集关于指定数据库活动的数据.例如:DBA可收集哪些被修改.执行了多少次逻辑的I/O等统计数据. ORACLE支持三种审计类型: u          语句审计,对某种类型的SQL语句审计,不指定结构或对象. u          特权审计,对执行相…
摘要: 继上一篇的文章 初识 MySQL 5.5 新功能.参数 之后,现在MySQL5.6 针对 MySQL5.5 各个方面又提升了很多,特别在性能和一些新参数上面,现在看看大致提升了哪些方面(后续不定时更新). 一:性能.功能上的提升. ① 在线DDL即 online DDL,日常的增删字段和索引都不会出现问题,但还是有很多操作不支持完全的在线DDL,包括增加一个全文索引,修改列的数据类型,删除一个主键,修改表的字符集等,其中主键可以通过自己指定的方式进行操作,操作方式有2种:algorith…
http://blog.csdn.net/luowangjun/article/details/5627102利用Oracle审计功能来监测试环境的变化 做过测试的人都应该会碰到这样的情况:测试发现的bug在开发机器上没有出现,显然这是环境差异的原因.相当多情况下,因为测试使用的数据库结构和开发使用的数据库结构不一致造成的.尤其是一些公司在提交测试版本的时候,注重应用程序的版本提交,往往忽略提交和程序匹配的数据库结构,在这种情况下,如果程序和数据库结构不匹配的话,系统稳定就怪了,就像window…
1.sqlserver2012可以做实例的审计,以及数据库的审计,基本包括了所有的操作.可以符合我们的要求.   2.审计功能需要实例级别的配置数据库级别的配置,实例上建立“审核”,数据库上建立“数据库审核规范”,两者同时启动才可以进行审计.   3.审计文件存储对象只有三个,分别为“文件”,“安全日志”,“应用程序日志”.一般我们存储到另外服务器的文件上以保证安全.   4.数据库审核规范只能在读写库上启用,不能再只读库上启用.   5.由于上一条的原因,为了解决在alwayson的只读副本上…
原文:SQL Server审计功能入门:SQL Server审核 (SQL Server Audit) 介绍 Audit是SQL Server 2008之后才有的功能,它能告诉你"谁什么时候做了什么事情".具体是指审核SQL Server 数据库引擎实例或单独的数据库涉及到跟踪和记录数据库引擎中发生的事件.它的底层是基于扩展事件(Extented Event),所以其性能和灵活性相对较好.审核数据可以输出到审核文件.Windows安全日志和应用程序日志. Audit都需要创建一个实例级…
原文:SQL Server审计功能入门:更改跟踪(Change Tracking) 介绍 更改跟踪是一种轻量型解决方案,它为应用程序提供了一种有效的更改跟踪机制.常规的,自定义变更跟踪和读取跟踪数据,会使用触发器,存储过程和记录变更的用户表等, 还需要保证访问一致和相关清理工作. 使用CT会减少额外工作量和保证访问一致性. 启用CT的表上必须得有主键,所有版本适用.为了保证更改信息的有效性,官方建议结合快照隔离使用. CT只能提供: 哪些行/列发生了更改 被更改行的最新数据. 不能提供:更改发生…
原文:SQL Server审计功能入门:CDC(Change Data Capture) 介绍 SQL Server 2008引入了CDC(Change Data Capture),它能记录: 1. 哪些数据行发生了改变 2. 数据行变更的历史记录,而不仅仅是最终值. 跟CT(Change Tracking)相比,它通过作业实现异步变更跟踪(像事务复制),而CT是同步实现的.因此它对性能的影响较轻并且不会影响事务. 典型应用是在提取.传输和加载数据到其它数据源,就像图中的数据仓库. 实现 微软建…
目前公司erp开发有一个脚本需求:对于收款合同审批单和收款合同(n:1),需要获取收款审批单中最新的一条审批记录来更新其对应的收款合同的相关信息. 难点主要在对相同类别的属性进行分组然后组内排序(分组排序加序号),这类问题大致的思路,对于同类别的进行分组,组内排序标号来获取最新一条的数据,有点类似Oracle的分析函数功能. 由于mysql没有实现分析函数功能,在查询网上许多帖子也都是互相复制的也没有说清楚,根据我所遇到等坑,在此记录,分享给大家,希望能对大家有所帮助. 审批单的表结构大致如下:…
oracle修改审计功能 如果没有关闭审计功能,审计日志文件默认保存在位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/ 关闭审计:alter system set audit_trail = none scope=both; Audit_trail: None:是默认值,不做审计: DB:将audit trail 记录在数据库的审计相关表中,如aud$,审计的结果只有连接信息: DB,Extended:这样审计结果里面除了连接信息还包含了当时执行的具体语句: OS…
Oracle 11g推出了审计功能,但这个功能会针对很多操作都产生审计文件.aud,日积月累下来这些文件也很多,默认情况下,系统为了节省资源,减少I/0操作,其审计功能是关闭的 一.审计功能关闭 1.查看审计功能是否开启?su – oraclesqlplus “/as sysdba”SQL> show parameter audit_trail NAME                                 TYPE        VALUE----------------------…
1.Audit的概念 Audit是监视和记录用户对数据库进行的操作,以供DBA进行问题分析.利用Audit功能,可以完成以下任务: 监视和收集特定数据库活动的数据.例如管理员能够审计哪些表被更新,在某个时间点上有多少个并行用户统计数据: 保证用户对自己的活动负责.这些活动包括在特定模式.特定表.特定行等对象上进行的操作: 审计数据库中的可疑活动.如一个未经授权的用户正从表中删除数据,那么数据库管理员必须审计所有数据库连接,以及在数据库中所有成功和失败的删除操作. 根据审计类型不同,审计记录中的信…
python操作mysql⑥新闻管理后台功能的完善(增.删.改.查)安装表单验证D:\python\python_mysql_redis_mongodb\version02>pip install Flask-WTF 表单验证功能http://flask.pocoo.org/docs/0.11/patterns/wtforms/ 目录结构: [root@node1 mysql_version03]# tree -L . ├── flask_news.py ├── forms.py ├── sta…
作用:mysql慢查询日志可监控有效率问题的SQL .. 一.开启mysql慢查询日志功能 1.查看是否开启 未使用索引的SQL记录日志查询 mysql> show variables like 'log_queries_not_using_indexes'; +-------------------------------+-------+ | Variable_name | Value | +-------------------------------+-------+ | log_que…