iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 12
1
自我挑戰組

MariaDB 的使用與管理系列 第 12

Audit 的實作 [1]

(以下文章擷取自筆者的 blog,分享給大家)

在資料庫的 Audit (稽核) 部份,需要有一套如同 SQL Server 的方式來執行。

分成兩篇來介紹 Audit。

MariaDB Server Audit Plugin

好在 MariaDB 有 Server Audit Plugin,相關文件在此

開起來很簡單,設定也很容易。

MariaDB Server Audit Plugin 與 SQL Sever Trace File Audit 的比較

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,說明如下

  1. CONNECT 就是連線訊息
  2. QUERY 執行 SQL 指令與結果代碼
  3. TABLE 哪些 Tables 因此 QUERY 而受影響
  4. QUERY_DDL DDL 的 Query,是 QUERY的子集合
  5. QUERY_DML DML 的 Query,是 QUERY的子集合
  6. QUERY_DCL DCL 的 Query,是 QUERY的子集合

什麼是預設的 DDL, DML, DCL 的 Query 呢? 這邊要看 Code 才知道,因為後續會有改程式碼的動作,所以到時一併說明之。

另外一個部份是 Output 的 Operation 欄位,有 CONNECT, QUERY, READ, WRITE, CREATE, ALTER, RENAME, DROP,這部份的詳細定義也是要看 Code。

下一篇就是發揮開源精神,直接改 Plugin 的 Code 來滿足需求。


上一篇
Log-shipping 與 MariaDB Replication [2]
下一篇
Audit 的實作 [2]
系列文
MariaDB 的使用與管理30

尚未有邦友留言

立即登入留言