zoukankan      html  css  js  c++  java
  • mysql5.7 添加审计功能 audit_log 在windows系统

     mysql的审计功能,主要可以记录下对数据库的所有操作,包括登录、连接、对表的增删改查等,便于责任追溯,问题查找,当然一定方面也会影响数据库效率。根据mysql版本的不同有两种分为企业版和社区版,审计功能目前在网上找到的基本都是基于linux系统的很崩溃,为了下载一个windows系统的插件楼主找了好久。本文主要讲解的是基于windows系统的。

    a、企业版 MySQL Enterprise Edition(收费)自带AUDIT审计功能。

    b、社区版 MySQL Community Server(免费)需要自己下载插件。

    为社区版提供审计的插件的主要有以下三个 McAfee MySQL Audit Plugin、Percona Audit Log Plugin、MariaDB Audit Plugin。

    第一个我在网上找到的代码基本上都是linux系统的,这里提供一个别人博客的链接有兴趣的可以去看看https://www.58jb.com/html/160.html

    第二个了解不多。

    第三个是本文主要说明的,主要思路,通过MariaDB官网下载对应版本的安装包,从安装包中获得版本对应的.dll插件(linux系统.so插件),拷贝到到自己的mysql插件库下,安装插件,开启审计功能,配置my.ini文件。具体说明如下:

    1、mysql与MariaDB 的版本对应很重要,楼主在这上面吃了大亏。低版本的容易导致数据库奔溃,楼主选择的是5.7.17版本的mysql数据库、MariaDB 的版本是5.5.57下载路径https://downloads.mariadb.org/mariadb/5.5/。

    2、从该路径下获得对应的mysql插件(server_audit.dll),...mariadb-5.5.57-winx64libplugin。复制到对应的mysql插件库中..Program FilesMySQLMySQL Server 5.7libplugin。

    3、登入mysql执行如下命令,可以查看mysql数据对应的插件文件存放位置。

    mysql> SHOW GLOBAL VARIABLES LIKE 'plugin_dir';

    4、执行如下命令安装审计插件。

    mysql> INSTALL PLUGIN server_audit SONAME 'server_audit.dll';

    5、安装成功,通过如下命令可以查看初始化参数配置。

    mysql> show variables like '%audit%';

    6、执行如下命令开启mysql审计功能,详细配置参数说明见文章结尾。

    备注:指定哪些操作被记录到日志文件中

    set global server_audit_events='CONNECT,QUERY,TABLE,QUERY_DDL'
    备注:开启审计功能
    set global server_audit_logging=on

    备注:默认存放路径,可以不写,默认到data文件下
    set global server_audit_file_path =/data/mysql/auditlogs/
    备注:设置文件大小
    set global server_audit_file_rotate_size=200000000

    指定日志文件的数量,如果为0日志将从不轮转
    set global server_audit_file_rotations=200

    强制日志文件轮转
    set global server_audit_file_rotate_now=ON

    7、执行完上述命令,show variables like '%audit%';可查看审计配置说明。

    8、可到data文件下查看日志文件server_audit.log。默认文件路径C:ProgramDataMySQLMySQL Server 5.7Data,

    可从中查看各项操作,可以发现什么时间那个用户执行了什么操作,便于责任追究。

    9、在控制台中用命令行配置的参数只对本次服务有效果,服务重启配置全部初始化了,因此想长久配置需要再my.ini文件(C:ProgramDataMySQLMySQL Server 5.7)中添加相应的配置信息。配置信息如下,需要更多参数的可自行添加。需要添加到[mysqld]下方,重启服务配置生效。

    #备注:防止server_audit 插件被卸载

    server_audit=FORCE_PLUS_PERMANENT

    #备注:指定哪些操作被记录到日志文件中
    server_audit_events='CONNECT,QUERY,TABLE,QUERY_DDL'
    server_audit_logging=on
    server_audit_file_rotate_size=200000001
    server_audit_file_rotations=200
    server_audit_file_rotate_now=ON

    10、卸载mysql审计插件,执行如下命令。

    mysql> UNINSTALL PLUGIN server_audit;
    mysql> show variables like '%audit%';
    Empty set (0.00 sec)

    11、在server_audit插件安装好后,并且已经运行之后添加这些配置,否则过早添加容易导致数据库服务无法正常启动

    12、参数配置说明
    详细请参考:https://mariadb.com/kb/en/mariadb/server_audit-system-variables/
    server_audit_output_type:指定日志输出类型,可为SYSLOG或FILE
    server_audit_logging:启动或关闭审计
    server_audit_events:指定记录事件的类型,可以用逗号分隔的多个值(connect,query,table),如果开启了查询缓存(query cache),查询直接从查询缓存返回数据,将没有table记录
    server_audit_file_path:如server_audit_output_type为FILE,使用该变量设置存储日志的文件,可以指定目录,默认存放在数据目录的server_audit.log文件中
    server_audit_file_rotate_size:限制日志文件的大小
    server_audit_file_rotations:指定日志文件的数量,如果为0日志将从不轮转
    server_audit_file_rotate_now:强制日志文件轮转
    server_audit_incl_users:指定哪些用户的活动将记录,connect将不受此变量影响,该变量比server_audit_excl_users优先级高
    server_audit_syslog_facility:默认为LOG_USER,指定facility
    server_audit_syslog_ident:设置ident,作为每个syslog记录的一部分
    server_audit_syslog_info:指定的info字符串将添加到syslog记录
    server_audit_syslog_priority:定义记录日志的syslogd priority
    server_audit_excl_users:该列表的用户行为将不记录,connect将不受该设置影响
    server_audit_mode:标识版本,用于开发测试
     
    转载自https://blog.csdn.net/lq18050010830/article/details/78031056
  • 相关阅读:
    解决多个window.onload冲突问题
    asp.net中img底部出现空白解決辦法
    学习WF起步
    ASP.NET后台注册javascript脚本方法
    WCF、Net remoting、Web service概念及区别
    WCF问答 WCF 与Web Service的区别
    C++深度探索系列:智能指针(Smart Pointer) [一] (转)
    ofstream和ifstream(详细2)转
    全面掌握const、volatile和mutable关键字(转)
    #define用法 收藏
  • 原文地址:https://www.cnblogs.com/lll-freshman/p/13651952.html
Copyright © 2011-2022 走看看