mysql 5.7 操做審計node
注:percona,mcafee,mariadb都有提供審計插件
mysql
1.下載 linux
#wget https://downloads.mariadb.org/interstitial/mariadb-10.1.21/bintar-linux-x86_64/mariadb-10.1.21-linux-x86_64.tar.gz
2.解壓 #tar -xf /mariadb-10.1.21-linux-x86_64.tar.gz,找到server_audit.so(通常在/lib/plugin目錄下)將server_audit.so拷貝到MySQL的安裝目錄下的mysql/lib/plugin目錄下,注意權限問題sql
#cp server_audit.so mysql/lib/plugin #chown mysql:mysql server_audit.so #修改屬主和數組 #chmod 755 server_audit.so
3.安裝插件
vim
mysql>install plugin server_audit soname 'server_audit.so'; Query OK, 0 rows affected, 1 warning (1.72 sec)
4.查看插件狀態數組
mysql> select * from mysql.plugin; +--------------+-----------------+ | name | dl | +--------------+-----------------+ | server_audit | server_audit.so | +--------------+-----------------+ 1 row in set (0.01 sec) mysql>show global variables like '%server_audit%';
此處省略:緩存
參數說明:bash
server_audit_output_type:指定日誌輸出類型,可爲SYSLOG或FILEide
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:標識版本,用於開發測試
啓動相關插件參數
mysql> set global server_audit_logging=on; Query OK, 0 rows affected (0.02 sec) mysql> set global server_audit_file_rotate_now=on; Query OK, 0 rows affected (0.00 sec)
注意:默認是在保存mysql數據文件目錄一塊兒,名稱爲server_audit.log
注意:卸載插件
mysql>uninstall plugin server_sudit;
查看是否已經成功記錄到日誌文件中
# tail -f server_audit.log 20170310 15:56:23,node02,root,192.168.2.71,7,6,QUERY,,'set global server_audit_file_rotate_now=on',0 20170310 15:56:26,node02,root,192.168.2.71,7,7,QUERY,,'show global variables like \'%server_audit%\'',0 20170310 15:58:10,node02,root,192.168.2.71,7,8,QUERY,,'SHOW DATABASLES',1064 20170310 15:58:14,node02,root,192.168.2.71,7,9,QUERY,,'SHOW DATABASES',0
5.把參數寫到my.cnf配置文件中,必須重啓mysql服務
vim /etc/my.cnf
#####server_audit####
server_audit_logging=on server_audit_events=‘query_dml,query_ddl‘ server_audit_file_path =/var/log server_audit_file_rotate_size=2G server_audit_file_rotations=30
重啓
#systemctl restart mysqld.service