window10系統(tǒng)下mysql5.7安裝審計插件(親測有用)
前言
mysql有沒oracle這樣的審計功能?突然想在mysql做審計怎么辦?下面帶大家從零開始給mysql安裝審計插件,親測絕對可用哦!
本教程雖然是在windows里操作,但在linux系統(tǒng)里也是同理,對應的插件和配置修改,都是類似的。
a、企業(yè)版 MySQL Enterprise Edition(收費)自帶AUDIT審計功能。
b、社區(qū)版 MySQL Community Server(免費)需要自己下載插件。
所以,免費的社區(qū)版的使用者們,跟著下面教程獲取到審計功能吧。
1、下載MariaDB拿到對應的審計插件
tip:這一步本來就是為了獲得審計插件的,不想下載MariaDB那么麻煩,直接本人保存好的審計插件-server_audit.dll文件(下載地址),
可跳過第1步、第2步,去到第3步,直接拷貝到數據庫所在目錄的\lib\plugin下 。
下載地址:http://xiazai.jb51.net/202209/yuanma/server_audit_jb51.rar
版本情況
window10
mysql5.7.36
mysql與MariaDB 的版本對應很重要。mysql5.7.36版本,選擇MariaDB 的版本是5.5.57下載路徑
https://archive.mariadb.org//mariadb-5.5.68/winx64-packages/mariadb-5.5.68-winx64.msi

2、安裝MariaDB審計插件


改下端口,其他都是下一步。
3、配置審計插件到mysql
1、登入mysql執(zhí)行如下命令,可以查看mysql數據對應的插件文件存放位置。
SHOW GLOBAL VARIABLES LIKE 'plugin_dir';

2、從MariaDB的lib\plugin目錄拷貝server_audit.dll:

復制到mysql對應的 lib\plugin目錄下:

3、mysql里執(zhí)行如下命令安裝審計插件:
INSTALL PLUGIN server_audit SONAME 'server_audit.dll';
4、安裝成功,通過如下命令可以查看初始化參數配置。
show variables like '%audit%';
5、執(zhí)行如下命令開啟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;
執(zhí)行完上述命令,
show variables like '%audit%';
可查看審計配置說明
6、永久生效配置,修改配置文件my.ini
[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
然后重啟mysql
net stop mysql net start mysql
4、測試審計插件
可到data文件下查看日志文件server_audit.log。

可以看到剛才操作的日志都有了:

5、卸載審計插件
#如果設置了防卸載,需要先去掉該配置 server_audit = FORCE_PLUS_PERMANENT UNINSTALL PLUGIN server_audit; show variables like '%audit%';
6、審計插件server audit參數說明
server_audit_events :指定記錄事件的類型,可以用逗號分隔的多個值 server_audit_excl_users : 該列表的用戶[行為]將不記錄,connect信息將不受該設置影響 server_audit_file_path :使用該變量設置存儲日志的文件,可以指定目錄,默認存放在數據目錄的server_audit.log文件中 server_audit_file_rotate_now :知否立即切割日志 server_audit_file_rotate_size :限制日志文件的大小 server_audit_file_rotations :指定日志文件的數量,如果為0日志將從不輪轉 server_audit_incl_users : 指定哪些用戶的活動將記錄,connect將不受此變量影響,該變量比server_audit_excl_users優(yōu)先級高 server_audit_loc_info : server_audit_logging :啟動或關閉審計ON/OFF server_audit_mode :標識版本,用于開發(fā)測試 server_audit_output_type :指定日志輸出類型,可為SYSLOG或FILE,當為syslog時記錄到/var/log/messages server_audit_query_log_limit :1024 server_audit_syslog_facility :LOG_USER server_audit_syslog_ident :mysql-server_auditing server_audit_syslog_info : server_audit_syslog_priority :LOG_INFO
重點說明參數: server_audit_events
省略值全部事件類型都會記錄到審計日志中,可選擇事件類型才記錄。
如 server_audit_events = query,table,query_ddl,query_dml
事件類型
CONNECT:連接、斷開連接和失敗的連接,包括錯誤代碼
QUERY:以純文本形式執(zhí)行的查詢及其結果,包括由于語法或權限錯誤而失敗的查詢
TABLE:受查詢執(zhí)行影響的表
QUERY_DDL:與QUERY相同,但只篩選DDL類型的查詢(create、alter、drop、rename和truncate語句,create/drop[procedure/function/user]和rename user除外(它們不是DDL)
QUERY_DML:與QUERY相同,但只篩選DML類型的查詢(do、call、load data/xml、delete、insert、select、update、handler和replace語句)
QUERY_DCL:與QUERY相同,但只篩選DCL類型的查詢(create user、drop user、rename user、grant、revoke和set password語句)
QUERY_DML_NO_SELECT:與QUERY_DML相同,但不記錄SELECT查詢。(從1.4.4版開始)(do、call、load data/xml、delete、insert、update、handler和replace語句)
7、注意
- 如果開啟了查詢緩存(query cache),查詢直接從查詢緩存返回數據,將沒有table記錄
- 由于除了DDL和DML之外還有其他類型的查詢,因此將查詢DDL和查詢DML選項一起使用并不等同于使用查詢。從Audit插件的1.3.0版開始,有用于記錄查詢的DCL類型(例如GRANT和REVOKE語句)的QUERY_DCL選項。在同一版本中,添加了server_audit_query_log_limit變量,以便能夠設置日志記錄的長度。以前,由于查詢字符串較長,日志條目將被截斷。
- 卸載審計插件
- 如my.cnf 有相關配置,先清空重啟再卸載。
到此這篇關于window10系統(tǒng)下mysql5.7安裝審計插件的文章就介紹到這了,更多相關mysql5.7安裝審計插件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Linux MYSQL5.7.23 rpm安裝(附帶安裝包)教程
RPM是一種軟件包管理系統(tǒng),常用于基于Red Hat的Linux發(fā)行版,如Fedora和CentOS,它允許用戶通過預編譯的二進制包快速安裝和管理軟件,這篇文章給大家介紹Linux mysql5.7.23 rpm安裝(附帶安裝包)教程,感興趣的朋友一起看看吧2023-12-12

