回覆列表
-
1 # TonyDeng
-
2 # 努力的比得兔
讓我們先分析一下能讓程式設計師幹出刪庫跑路的原因。
程式設計師一般性格都比較直,不太會勾心鬥角,能讓他們幹出刪庫跑路的事,肯定是公司或公司領導幹出讓他們難以忍受的事情。
刪庫原因
大概有這麼幾類,
公司答應的工作或獎金沒有兌現公司要拿某事問責,員工被處罰,覺得受不了公司的懲罰力度公司人際關係差,覺得受委屈了當程式設計師對公司的意見大到一定程度,就會找地方發洩。而最直接的辦法就是把公司資料庫刪了,讓公司無法運作。
後果
刪庫這種行為,如果不是被逼的太辦法,程式設計師是不可能走到這步的。這種屬於故意破壞公司財產,是要負法律責任的。
一般公司都會經常對資料庫做備份的,並且對操作許可權及操作日誌都會有記錄的。如果資料庫被刪,很容易追責具體是誰刪的,而一般也是可以恢復大部分資料的。
但這種事對公司的名聲會有很大影響,會降低公司在行業的競爭力。所以殺傷力還是很大的。
告誡
凡事還是走正常流程,如果是因為錢的問題無法解決,那就去走仲裁、上法院。如果是公司人際關係原因,那就能待則待,不能待就走,江湖不相見。
-
3 # 甲子午光年
記得剛入職阿里巴巴的員工說:資料庫可以直接用bash執行後臺增刪改操作,各種監管和操作日誌機制都不是很完善。
結果果有一天,我使用儲存過程進行update極度重要的表的時候,忘了加where條件,就直接敲了回車執行,所以和刪庫也差不了多少。當時的心態,只能告訴你嚇呆了,嚇傻了。
第一反應,哪敢告訴主管。用顫抖的手打電話給DBA,差點在電話這一端跪下了。知道沒有備份的訊息後,我是想跑路來著的。所以在《阿里巴巴JAVA開發手冊》中,Mysql中有兩條與此事件相關:
其實,隨後不斷在MySQL領域發奮圖強,才意識到update是一個事務,我中途Kill掉程序,就不可能出現一半更新,一半不更新的情況,年少無知,白白捱了一通批評。
這裡不說跑路是什麼原因,只是想說,就資料庫的底層原理來說,是不怕刪的,尤其是那種批量刪除指令。道理很簡單,資料庫都追求高效,刪除操作指令發出,它只是把相關記錄標註為刪除狀態而已,並沒有真正把資料抹除,類似於電腦普通刪除文件,只要未被覆蓋,資料有可能被恢復。
用C/C++寫過程式的人,其實也明白這個道理,指標類造成的bug,有一種就是廢棄記憶體複用,雖然用free()函式發出釋放記憶體指令,但系統或記憶體管理模組是不會立即把此塊記憶體挪用的,如果指標記憶的地址仍在,依然可以訪問該處的資料(這種漏洞常常被黑客利用)。資料庫的刪除操作也一樣是這般,其實看看大型資料庫的體積膨脹如此迅速和厲害就猜得到,它保留了被宣佈刪除的東西轉而直接在末尾新增新資料連尋訪原資料進行擦寫的操作都省了,所以基本上要把資料刪除乾淨很難,尤其在多使用者環境中更難(要徹底刪除無用資料並壓縮資料局體積必須所有使用者關閉對資料庫的訪問進入獨佔模式才可以)。