開啟mysql 資料庫審計功能。

babyyellow發表於2021-11-17

社群版的mysql 是沒有審計功能的。 


需要開啟審計功能。 


其實看到  $mysql/lib/plugin 


裡面的結構,基本也就明白了。剩下的就是相容性問題了。 


mariadb  帶有審計功能的外掛。   對應的server_audit.so  檔案。 


我們把這個檔案拿到  mysql/lib/plugin 裡面。 


這裡需要注意一個問題。 


在編譯的時候。  mariadb 的server_audit.so 是有路徑的。 


如果是用的  mariadb 的已經編譯好的二進位制分發包。 


一個是設定檔案對應的目錄。 


一個是做符號連結。 


直接放到 mysql/lib/plugin下面啟動的時候,  看 err 日誌 。裡面有其實找不到so檔案。 


然後 根據提示做一個對應符號連結 ,就可以了。 



rpm  安裝的 對應於   /usr/lib64/mysql/plugin


my.cnf

 配置: 

####   server audit   by  mariadb  plugins ##############3


plugin_load="server_audit=server_audit.so"


server_audit_logging=on

server_audit_file_path =/usr/local/mysql/audits/server_audit.log

server_audit_file_rotate_size=100000000

#server_audit=FORCE_PLUS_PERMANENT



show global variable like  '%audit%';  


set  gloal   xxxxx  =xx  可以動態調整 。






我們看看對應的審計日誌啥樣子







對於已經投產的資料庫。  不能隨便停機了


同樣的把so 檔案放到正確位置: 



mysql 資料庫裡面: 


INSTALL PLUGIN server_audit SONAME 'server_audit.so';


show variables like '%audit%';


set global server_audit_logging=on;



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_incl_users:指定哪些使用者的活動將記錄,connect將不受此變數影響,該變數比server_audit_excl_users優先順序高

server_audit_excl_users:該列表的使用者行為將不記錄,connect將不受該設定影響

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

相關文章