該功能是一個commercial extension.它是被包含在MySQL Enterprise Edition的。所以社區(qū)版本可能就無法使用了。
雖然文檔上是說它在5.5.28被包含在plugin目錄下,不過在前幾個版本(比如5.5.25a、5.5.24等)也是存在的。只不過可能開發(fā)并未完善(早期的版本中包含的audit plugin加載后,可控參數(shù)較少)。
如果想嘗試它,可以去下載5.5.28的商業(yè)版本(5.5.25a也可以),安裝5.5.28的過程不表,安裝audit功能有兩種方法,一是編輯my.cnf的配置文件(舉例的環(huán)境皆是linux_64),添加如下語句:
[mysqld]plugin-load=audit_log.so
然后在啟動MySQL時,在啟動命令中加入選項'--plugin-load',這種方法的缺點是每次DB啟動時都要加上該選項。牽扯到DB start/stop/restart的安裝方法都是浮云,所以這種方法不推薦。
二(好吧,裝傻只是瞬間,真二才是永恒)是直接使用install plugin語句register該插件:
mysql> INSTALL PLUGIN audit_log SONAME 'audit_log.so';
該語句成功運行后,會在mysql.plugins表中看到該插件的記錄:
mysql> select * from mysql.plugin;+-----------+--------------+| name | dl |+-----------+--------------+| audit_log | audit_log.so |+-----------+--------------+
此時,audit就已經(jīng)開始工作了。它會在數(shù)據(jù)目錄(默認(rèn))下產(chǎn)生一個名為'audit.log'(默認(rèn))的未加密XML文檔。
目前MySQL Enterprise Audit 可記錄login 或 query events.并且有多個限制,其中比較大的限制是只能記錄top-level的語句,包含在triggers、procedures的語句暫時不能記錄。其文件記錄片段如下:
5.5.28中的audit有如下可控參數(shù):
mysql> SHOW VARIABLES LIKE 'audit_log%'; +--------------------------+--------------+| Variable_name | Value |+--------------------------+--------------+| audit_log_buffer_size | 1048576 || audit_log_file | audit.log || audit_log_flush | OFF || audit_log_policy | ALL || audit_log_rotate_on_size | 0 || audit_log_strategy | ASYNCHRONOUS |+--------------------------+--------------+
這幾個參數(shù)大多可從字面上理解其意義,比較關(guān)鍵的參數(shù)是:
audit_log_policy : 控制記錄哪些類型的審計記錄,有效值為:ALL(log all events)、NONE(login nothing(disable the audit stream))、LOGINS(log only login events)、QUERIES(log only query events)
詳情可參閱:
http://dev.mysql.com/doc/refman/5.5/en/mysql-enterprise-audit.html
bitsCN.com聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com