MySQL5.7審計功能windows系統

13545163656發表於2018-08-29

MySQL5.7審計功能windows系統

MySQL的審計功能,主要可以記錄下對資料庫的所有操作,包括登入、連線、對錶的增刪改查等,便於責任追溯,問題查詢,當然一定方面也會影響資料庫效率。根據 MySQL 版本的不同有兩種分為企業版和社群版,審計功能目前在網上找到的基本都是基於linux系統的很崩潰(公司基於Windows),為了下載一個windows系統的外掛找了好久。本文主要講解的是基於windows系統的

a、企業版 MySQL Enterprise Edition(收費)自帶AUDIT審計功能。

b、社群版  MySQL Community Server(免費)需要自己下載外掛。

為社群版提供審計的外掛的主要有以下三個 McAfee MySQL Audit Plugin、Percona Audit Log Plugin、MariaDB Audit Plugin。


這裡主要講述:
MariaDB Audit Plugin
    MariaDB官網下載對應版本的安裝包, 從安裝包中獲得版本對應的.dll外掛(linux系統.so外掛),複製到到
自己的mysql外掛庫下,安裝外掛,開啟審計功能,配置my.ini檔案。具體說明如下、

1、MySQL與 MariaDB的版本對應很重要,之前這上面吃了大虧。低版本的容易導致資料庫奔潰,選擇的是5.7.21版本的mysql資料庫、 MariaDB的版本是5.5.57
    下載路徑 。

 

 

 

 


2、從該路徑下獲得對應的mysql外掛(server_audit.dll),在mariadb-5.5.57-winx64\lib\plugin\目錄下。複製到對應的 MySQL 外掛庫中C:\Program Files\MySQL\MySQL Server 5.7\lib\plugin。

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:\ProgramData\MySQL\MySQL Server 5.7\Data;主要看你的 ProgramData 目錄在什麼位置

可從中檢視各項操作,可以發現什麼時間那個使用者執行了什麼操作,便於責任追究。


9、在控制檯中用命令列配置的引數只對本次服務有效果,服務重啟配置全部初始化了,因此想長久配置需要再my.ini檔案(C:\ProgramData\MySQL\MySQL 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)

重要:
在server_audit外掛安裝好後,並且已經執行之後新增這些配置,否則過早新增容易導致資料庫服務無法正常啟動


引數配置說明:


詳細請參考:
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:標識版本,用於開發測試






來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31441024/viewspace-2213103/,如需轉載,請註明出處,否則將追究法律責任。

相關文章