MariaDB日誌審計 幫你揪出內個幹壞事兒的小子

wKioL1ftzG_xgjEqAAA6K0SjNFA658.jpg

MariaDB日誌審計 幫你揪出內個幹壞事的小子

Part1:誰幹的?數據庫

作DBA的常常會遇到,一些表被誤操做了,被truncate、被delete、甚至被drop。引發這方面的緣由大多數都是由於人爲+權限問題致使的。一些公共帳戶,例如ceshi帳戶,全部的人均可以進行操做,由這些公共帳戶引發的誤操做,你在辦公室大喊:誰把個人表刪了?8成不會有人迴應你。ide


審計日誌功能,該技術主要在MariaDB10.0/10.1和Percona 5.6版本里實現。該功能在MySQL5.6/5.7企業版裏也支持。本文主要介紹和演示MariaDB10.1中如何開啓審計日誌,幫你揪出內個幹壞事兒的小子~ui


Part2:構建環境spa

本文中,咱們採用的MariaDB版本爲10.1.16,固然用其餘版本的MariaDB亦可,如何安裝MariaDB數據庫環境本文不作贅述,若是須要的可移步:插件

http://suifu.blog.51cto.com/9167728/1830575 日誌


下面介紹在MariaDB10.1.16中,安裝審計Audit Plugin插件的方法orm

在MariaDB數據庫中執行以下命令:server

NSTALL PLUGIN server_audit SONAME 'server_audit.so';blog

具體代碼以下圖所示。get

wKioL1fsYOqyR4VhAAD9zQVbwLs526.jpg


Warning:警告

這裏值得注意的是,server_audit.so名字不是隨意取的,由於它會讀/usr/local/mariadb/lib/plugin目錄下的文件,若是說將其給明爲mariadb-audit.so,就會拋出以下錯誤,由於plugin目錄下沒有該文件。

wKioL1fsYb2iSN-9AAEgvCrxd6w821.jpg


Part2:參數解釋

server_audit_events='CONNECT,QUERY,TABLE'表示惠濟路連接進來的IP、用戶名和表的DML/DDL/DCL操做。

server_audit_logging=ON 表示開啓審計日誌服務。

server_audit_excl_users=helei 表示只記錄helei用戶的全部操做。

server_audit_file_rotate_size=1G 表示超過定義的1GB,日誌會自動輪訓。

server_audit_file_path=server_audit.log 表示審計日誌的路徑。


更多相關參數能夠利用show variables like 'server_audit%';來查看,以下圖所示。

wKioL1fsYyzyL37_AAF7wyAmOiM317.jpg


Part3:開啓相關參數

server_audit_events、server_audit_logging等參數均爲全局動態參數,能夠直接在數據庫更改,命令以下:

set global server_audit_events='CONNECT,QUERY,TABLE';

set global server_audit_logging=ON;

wKiom1fsZH7CliSlAAHhMBHs5Ho029.jpg



Part4:檢查效果

在開啓相關參數後,無需重啓數據庫,可直接看到相關的操做已經被記錄到server_audit.log ,以下圖所示。

wKioL1fsZSOgGtCZAALxEbz5bss436.jpg



——總結——

自從有了審計功能,媽媽不再用擔憂我找不到「壞人」啦。因爲筆者的水平有限,編寫時間也很倉促,文中不免會出現一些錯誤或者不許確的地方,不妥之處懇請讀者批評指正。

相關文章
相關標籤/搜索