(以下文章擷取自筆者的 blog,分享給大家)
在資料庫的 Audit (稽核) 部份,需要有一套如同 SQL Server 的方式來執行。
分成兩篇來介紹 Audit。
好在 MariaDB 有 Server Audit Plugin,相關文件在此。
開起來很簡單,設定也很容易。
SQL Server 的 Audit 是用 Trace File 來儲存 Audit 資料,以下用一個表格做一個比較
項目 | SQL Server Trace File Audit | MariaDB Server Audit Plugin |
---|---|---|
儲存方式 | Binary File 自有格式 | Text File (逗號隔開), syslog |
取用方式 | fn_trace_gettable() 取得資料 |
打開檔案或是 syslog client |
紀錄分類方式與數量 | 20 種 Class,每個 Class 數個 Events (2012) | 8 種 (CONNECT , QUERY , READ , WRITE , CREATE , ALTER , RENAME , DROP ) |
資料的控制 | sp_trace_* 設定人事時地物,檔案需要自己處理 |
server_audit_* 設定人事時地物,有 rotate 設定 |
在文件裡 Logging events 一節提到的可設定的 Type,說明如下
CONNECT
就是連線訊息QUERY
執行 SQL 指令與結果代碼TABLE
哪些 Tables 因此 QUERY
而受影響QUERY_DDL
DDL 的 Query,是 QUERY
的子集合QUERY_DML
DML 的 Query,是 QUERY
的子集合QUERY_DCL
DCL 的 Query,是 QUERY
的子集合什麼是預設的 DDL, DML, DCL 的 Query 呢? 這邊要看 Code 才知道,因為後續會有改程式碼的動作,所以到時一併說明之。
另外一個部份是 Output 的 Operation 欄位,有 CONNECT
, QUERY
, READ
, WRITE
, CREATE
, ALTER
, RENAME
, DROP
,這部份的詳細定義也是要看 Code。
下一篇就是發揮開源精神,直接改 Plugin 的 Code 來滿足需求。