存檔

文章標簽 ‘審計’

mysql審計功能安裝使用

2018年3月21日 1 條評論

mysql社區版沒有審計功能,企業版有審計功能,但是需要付費。

社區版可以使用mcafee開發的審計功能插件libaudit_plugin.so,這個插件可以用在mysql 5.1以后的版本,使用時請下載對應的版本。

https://bintray.com/mcafee/mysql-audit-plugin/release#files

解壓拷貝libaudit_plugin.so到mysql的插件目錄:

查看MySQL的插件目錄:

復制庫文件到MySQL庫目錄下:

# cp audit-plugin-mysql-5.7-1.1.4-725/lib/libaudit_plugin.so /usr/local/mysql/lib/plugin/
# chmod a+x libaudit_plugin.so

進入mysql命令窗口,安裝插件:

> install plugin audit soname 'libaudit_plugin.so';
Query OK, 0 rows affected (0.06 sec)
查看mysql當前已經加載了哪些插件:

查看版本:

開啟Audit功能:

> SET GLOBAL audit_json_file=ON;
Query OK, 0 rows affected (0.00 sec)
執行任何語句(默認會記錄任何語句,有語法錯誤的不會記錄),然后去mysql數據目錄查看mysql-audit.json文件(默認為該文件)。

插入一些數據,查看一下mysql-audit.json文件信息(json格式),如下:

復制代碼

可以查看插件有哪些可配置的參數:

mysql> SHOW GLOBAL VARIABLES LIKE '%audi%';

其中我們需要關注的參數有:

1. audit_json_file

是否開啟audit功能(0為關閉)。

2. audit_json_log_file

記錄文件的路徑和名稱信息(默認放在mysql數據目錄下.json文件)。

3. audit_record_cmds

audit記錄的命令,默認為記錄所有命令。可以設置為任意dml、dcl、ddl的組合。如:audit_record_cmds=select,insert,delete,update。還可以在線設置set global audit_record_cmds=NULL。(表示記錄所有命令)

4. audit_record_objs

audit記錄操作的對象,默認為記錄所有對象( 審計哪些數據庫),可以用SET GLOBAL audit_record_objs=NULL設置為默認。也可以指定為下面的格式:audit_record_objs=,test.*,mysql.*,information_schema.*。

5. audit_whitelist_users

用戶白名單。

詳細的參數說明,可以直接訪問官方說明:

https://github.com/mcafee/mysql-audit/wiki/Configuration

最后為了保證重啟數據庫,配置不丟失,修改my.cnf 配置文件,將下面的配置添加到[mysqld]中,所以在配置文件中my.cnf加入參數:

audit_json_file=on #保證mysql重啟后自動啟動插件
plugin-load=AUDIT=libaudit_plugin.so #防止刪除了插件,重啟后又會加載
audit_record_cmds='insert,delete,update,create,drop,alter,grant,truncate' #要記錄哪些命令語句,因為默認記錄所有操作;
保存重啟即可看到效果。

mysql審計插件卸載

直接執行 UNINSTALL PLUGIN AUDIT 卸載會報錯:

需要在 my.cnf 中 [mysqld] 下添加 audit_uninstall_plugin=1,重啟mysql。重啟完畢后執行兩次 UNINSTALL PLUGIN AUDIT; 即可卸載。

卸載完成后需要從 my.cnf 中刪除 audit_uninstall_plugin=1 ,否則下次mysql啟動會報錯:[ERROR] /data/mysql/bin/mysqld: unknown variable 'audit_uninstall_plugin=1'

分類: mysql 標簽: ,
极速快乐十分助手