想信今次我的問題會有人有方案了
最近公司突發奇想, 想要監管數據庫的行為
公司主要是怕數據庫資料被大量偷竊,想看看有沒軟體平時就可以監管用戶行為
如果那天突然有大量炒寫/改動等動作
就可以發個電郵給主管告訴他再不行動就快被解僱了等等
求軟件推薦, 最好有本地技術支持
認真來說,你的想法雖然不錯,但一般等到被通知時,大多為時已晚。
所以沒有人會採用這樣的監管方式。
大多數的人還是會採用備份的方式。
也可以去記錄 BIN 命令 LOG 的方式。(這可以去應付改寫的情況)
這個其實並不需要什麼特別的軟體。一般資料庫管理如最簡單的phpMYAdmin都有這樣的警告設定。
也可以下指令來檢查目前的資料庫狀態。
一個中小型的ERP一天下來被執行的SELECT應該不下萬次
我看到那LOG也是暈頭轉向,該如何去判斷哪些是有害的,哪些是正常的,會考倒我
除非,有人做AI去讀LOG判斷的功能,但
有人能扛下,因為AI的誤動作而被開除的員工的所有法律責任嗎?
都用到Oracle這種貴森森的東西,
它內建的功能在企業安全與管理上稽核紀錄很多。
去書店翻Oracle的書或google
Oracle Audit sys.aud$
Archived log
redolog
LogMiner
連線安全管理
基本上異動跟SQL紀錄都有辦法撈到,
還有時間點撈回資料比對都有機會。
這些內容的介紹,oracle11g以上的務實管理的書基本內容。
DennisLu 已經說明了. 對於 Oracle 來說稽核是自帶的. 你可以根據某個表格或是帳號.(或是兩者結合)範例, 我有一個表格叫 hr.emp. 一個使用者叫 jsmith
create audit policy audit_emp actions all on hr.emp;
create audit policy audit_jsmith when 'sys_context(''userevn'',''session_user'')=''jsmith''' evaluate per session;
或者
create audit policy audit_jsmith_emp actions all on hr.emp when 'sys_context(''userevn'',''session_user'')=''jsmith''' evaluate per session;
根據你是否啟用 unifiied auidt, 你的稽核紀錄可用不同的方式查詢. (不同的 trail 如 unifieid_audit_trail)
至於 MySQL, 我印象中只有 Enterprise 有 Audit. (要授權)
能賣錢的資料庫稽核幾乎是自帶的. 稽核本身不難. 主要問題在如何統整/過濾稽核資料. (想像你有超過破千台甲骨文資料庫, 光是稽核登入/登出就是大問題) 當然作為第一撈錢的資料庫, 甲骨文還有 Audit Vault (另一個產品) 可以提供統一的地方彙整稽核資料. 要撈資料尤其是你說的異常狀態, 你需要的是 OLAP (或是 Advance Analytic, 另一個要授權的產品, 然後用它跑 anomaly detection 的分析)
我個人不建議用整套 Oracle 來統整/分析, 因為學習門檻在那(還有那高昂的授權). 不過使用自帶的稽核功能來產生紀錄, 然後匯入第三方分析軟件是比較好的解決方案. <- 因為用資料庫自帶的稽核功能對於效能來說是比較有利的. 以 Oracle 來說, 稽核紀錄預設是非同步處理 (queue)