Mysql

審計 MySQL 表上的 DML 操作

  • October 11, 2018

我們有幾個 MySQL 5.0 數據庫。

我們一直遇到安全問題,例如未經授權修改記錄。

我們需要對 DML 操作實施某種審計,以辨識對某些關鍵表執行 UPDATE 或 DELETE 操作的使用者。

我一直在Google上搜尋任何會啟動此類審核的 my.conf 選項,但無濟於事。

破壞性最小的方法是使用通用查詢日誌。查詢日誌輸出可以是數據庫表,也可以是日誌(文本)文件;但是它不支持通過 DML 操作或數據庫進行過濾,因此所有數據庫上的所有 SELECT 語句也將被記錄。顯然,您可以稍後過濾日誌記錄輸出。

另請注意:

session sql_log_off 變數可以設置為 ON 或 OFF 以禁用或啟用目前連接的一般查詢日誌記錄。

這意味著通過一些注入的邏輯,您可以想像禁用 SELECT 的日誌記錄。

另一種解決方案是在 UPDATE、INSERT、DELETE 上使用觸發器。這將直接影響有問題的數據庫,但不會影響在同一實例中執行的其他數據庫。

另請參閱此處此處的 SO 問題。

引用自:https://dba.stackexchange.com/questions/69226