一、引言
1. 什麼是數據庫審計?
對於一個倉庫,如果要防盜,常見做法是出入口全裝上監控,一旦有問題了,調監控查找異常情況。對數據庫來說也類似,數據庫也有出入口,對所有連接出入口監控,可以記錄下所有的動作,一旦有問題了,通過查詢歷史動作並進行分析,可以找到關鍵信息。
故數據庫審計可以理解爲是記錄用戶訪問數據庫行爲,定位非法動作,事後追根溯源,提高數據庫安全性的功能。
2. 常見的審計方式
常見的審計方式包括以下幾個類別:
(1)應用層審計
在應用系統中直接審計,語句還沒往數據庫後臺發就先做了審計,不影響數據庫性能,對底層用的是什麼數據庫也不關心,但對應用系統壓力比較大,並且應用系統需要解析語句,有一定複雜度。
(2)傳輸層審計
往往抓包解析實現,對上下層都沒什麼影響,但同樣要解析語句,有一定複雜度,並且如果傳輸層是通過加密通訊,將無法解析。
(3)內核審計
直接在內核上實現,所有功能都能實現,也能將性能影響降到最低,但是對後臺穩定性會有影響,對開發人員要求高,不管是開源還是非開源數據庫,都會非常慎重考慮直接在內核上支持審計。
(4)插件審計
對於開源數據庫,通常都有提供插件方式增加功能。審計可以以插件直接嵌在內核上,當然會對數據庫性能有一定影響,但同樣因爲直接嵌在內核,很多一手信息能直接拿到,比方說上面沒辦法迴避的語法解析就不用做,而且還能直接拿更多的運行態信息,能開發功能強大又靈活的審計功能。
原文鏈接:【https://www.infoq.cn/article/a4DNNeVBNuGqLJMR0HhK】。未經作者許可,禁止轉載。