數據庫設計與應用過程中的安全性涉及到哪些方面?

用戶2055117494949


1、所有的SQL exception 信息都不能直接返回給客戶端。

2、在任何情況下使用完Connection後都要釋放連接,特別是在拋出異常的時候也要釋放Connection。

3、表中的用戶敏感信息要加密存儲,最好在加密的時候加入幾位隨機數。

4、所有的數據庫訪問都用preparestatement的方式或者封裝為存儲過程。

5、配置文件中的數據庫訪問用戶名和密碼都加密並編碼存放。

6、系統上線運行時,僅給數據庫用戶必要的權限。


大王Polo


數據庫安全一方面是系統運行安全系統運行安全通常收到的威脅如:一些網絡不法分子通過網絡,局域網等途徑通過入侵電腦使系統無法正常啟動,或超負荷讓計算機運行大量算法,並關閉cpu風扇,使cpu過熱燒壞等破壞性活動。

另一方面是系統信息安全,系統安全通常收到的威脅是黑客對數據庫入侵,並盜取想要的資料。數據庫的安全員主要是針對數據而言,包括數據獨立性,數據安全性,數據完整性,併發控制,故障恢復等幾個方面。網絡的開放性給數據庫系統安全帶來了嚴重的安全隱患。


咕嚕手繪


 1、數據庫設計最起碼要佔用整個項目開發的40%以上的時間

  數據庫是需求的直觀反應和表現,因此設計時必須要切實符合用戶的需求,要多次與用戶溝通交流來細化需求,將需求中的要求和每一次的變化都要一一體現在數據庫的設計當中。如果需求不明確,就要分析不確定的因素,設計表時就要事先預留出可變通的字段,正所謂“有備無患”。

  2、數據庫設計不僅僅停留於頁面demo的表面

  頁面內容所需要的字段,在數據庫設計中只是一部分,還有系統運轉、模塊交互、中轉數據、表之間的聯繫等等所需要的字段,因此數據庫設計絕對不是簡單的基本數據存儲,還有邏輯數據存儲。

  3、數據庫設計完成後,項目80%的設計開發在你腦海中就已經完成了

  每個字段的設計都是有他必要的意義的,你在設計每一個字段的同時,就應該已經想清楚程序中如何去運用這些字段,多張表的聯繫在程序中是如何體現的。換句話說,你完成數據庫設計後,程序中所有的實現思路和實現方式在你的腦海中就已經考慮過了。如果達不到這種程度,那當進入編碼階段後,才發現要運用的技術或實現的方式數據庫無法支持,這時再改動數據庫就會很麻煩,會造成一系列不可預測的問題。

  4、數據庫設計時就要考慮到效率和優化問題

  一開始就要分析哪些表會存儲較多的數據量,對於數據量較大的表的設計往往是粗粒度的,也會冗餘一些必要的字段,已達到儘量用最少的表、最弱的表關係去存儲海量的數據。並且在設計表時,一般都會對主鍵建立聚集索引,含有大數據量的表更是要建立索引以提供查詢性能。對於含有計算、數據交互、統計這類需求時,還要考慮是否有必要採用存儲過程。

  5、添加必要的(冗餘)字段

  像“創建時間”、“修改時間”、“備註”、“操作用戶IP”和一些用於其他需求(如統計)的字段等,在每張表中必須都要有,不是說只有系統中用到的數據才會存到數據庫中,一些冗餘字段是為了便於日後維護、分析、拓展而添加的,這點是非常重要的,比如黑客攻擊,篡改了數據,我們便就可以根據修改時間和操作用戶IP來查找定位。

  6、設計合理的表關聯

  若多張表之間的關係複雜,建議採用第三張映射表來關聯維護兩張表之間的關係,以降低表之間的直接耦合度。若多張表涉及到大數據量的問題,表結構儘量簡單,關聯也要儘可能避免。

  7、設計表時不加主外鍵等約束性關聯,系統編碼階段完成後再添加約束性關聯

  這樣做的目的是有利於團隊並行開發,減少編碼時所遇到的問題,表之間的關係靠程序來控制。編碼完成後再加關聯並進行測試。不過也有一些公司的做法是乾脆就不加表關聯。

  8、選擇合適的主鍵生成策略


分享到:


相關文章: