iT邦幫忙

0

有沒 數據庫 行為監管 軟件 - 主要針對Oracle/MySQL

  • 分享至 

  • xImage

想信今次我的問題會有人有方案了

/images/emoticon/emoticon07.gif

最近公司突發奇想, 想要監管數據庫的行為

公司主要是怕數據庫資料被大量偷竊,想看看有沒軟體平時就可以監管用戶行為

如果那天突然有大量炒寫/改動等動作

就可以發個電郵給主管告訴他再不行動就快被解僱了等等

求軟件推薦, 最好有本地技術支持

小魚 iT邦大師 1 級 ‧ 2021-04-28 23:42:37 檢舉
監控性能應該有,
監控到個人的就不確定了...
PPTaiwan iT邦好手 1 級 ‧ 2021-04-29 09:22:01 檢舉
方案就是要求 寫 SQL 時能夠加入相關的執行註解,並且任何 SQL 在執行的過程可以加以統計起來。才能即時做到監管的行為,但這個要花費很多的行為與時間,可能一段簡單的 CRUD 要花半小時的時間在寫相關的監管行為。

但沒有工程師或是公司寫專案有這麼閒的時間在搞這些行為與動作。可能市面上有監管軟體,但什麼專案要花這麼多錢來做這種事情 ?? 因為軟體的安全性本就廠商要負責的事情,還要客戶花這種錢呢??

再考量到 監管軟體 會不會影響到實際 SQL 的執行呢?? 監管行為只要影響,這時候任何說法都出來了

再說了,90% 工程師的 SQL SCRIPT 都是寫在程式碼裡面,要去動也很難還要加監管動作。那他就只會將程式碼丟給你自己去加,想想看你會做嗎??

理由可以有很多,但看事情問題點在那裡?? 但為何你的資料庫在防護的情形下還被 "大量偷竊" ,那應該是會誰的問題呢??
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0

認真來說,你的想法雖然不錯,但一般等到被通知時,大多為時已晚。
所以沒有人會採用這樣的監管方式。

大多數的人還是會採用備份的方式。
也可以去記錄 BIN 命令 LOG 的方式。(這可以去應付改寫的情況)

這個其實並不需要什麼特別的軟體。一般資料庫管理如最簡單的phpMYAdmin都有這樣的警告設定。
也可以下指令來檢查目前的資料庫狀態。

0
japhenchen
iT邦超人 1 級 ‧ 2021-04-29 07:54:45

一個中小型的ERP一天下來被執行的SELECT應該不下萬次

我看到那LOG也是暈頭轉向,該如何去判斷哪些是有害的,哪些是正常的,會考倒我

除非,有人做AI去讀LOG判斷的功能,但

有人能扛下,因為AI的誤動作而被開除的員工的所有法律責任嗎?

落實權限劃分,不要所有軟體、網頁使用者都分派給delete、update....

不過要讓開發者去用多個權限在一套系統內....頭皮發麻中

0
souda
iT邦高手 1 級 ‧ 2021-04-29 13:27:53

trigger 功能您可以找看看設定方試喔!
可針對INSERT/UPDATE/DELETE個別設定.

0
DennisLu
iT邦好手 1 級 ‧ 2021-04-29 16:28:15

都用到Oracle這種貴森森的東西,
它內建的功能在企業安全與管理上稽核紀錄很多。

去書店翻Oracle的書或google
Oracle Audit sys.aud$
Archived log
redolog
LogMiner
連線安全管理
基本上異動跟SQL紀錄都有辦法撈到,
還有時間點撈回資料比對都有機會。

這些內容的介紹,oracle11g以上的務實管理的書基本內容。

0
pojen
iT邦研究生 5 級 ‧ 2021-04-30 21:26:38

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)

0
sd3388
iT邦好手 1 級 ‧ 2021-05-02 14:40:57

樓主看來應該會有些意外吧
不過就想要個資料庫稽核的軟體
可以參考下庫柏資訊

我要發表回答

立即登入回答