(以下文章擷取自筆者的 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 來滿足需求。