楊 蘇(河南牧業經濟學院,鄭州 450044)
?
數據庫安全性設計
楊蘇
(河南牧業經濟學院,鄭州450044)
摘要:數據庫的共享使用是其一個重要的作用和功能,但是數據共享如果不加入一些規則和限制會給數據庫帶來安全性問題。我們應該明白數據庫系統中的數據共享不能是無條件的共享。如何保護數據庫防止一些用戶因不當的及不合法的使用造成數據更改、破壞或泄漏,這就需要使用一些技術手段。本文主要以Oracle數據庫為對象研究如何運用安全措施保證數據庫的安全。
關鍵詞:數據庫;數據共享;Oracle數據庫;數據庫安全
現在信息系統的開發中數據庫的設計所在比重越來越大,防止數據庫不被非法訪問、破壞和提高數據庫的性能是數據庫設計非常重要的環節,數據庫安全性設計和性能優化已被廣大系統開發者所重視。
2.1用戶標識與鑒別
在我們使用的計算機系統中,安全措施是分很多層次的,用戶標識與鑒別是系統所能夠提供的安全保護措施中最外面的一層。其方法是由系統為用戶提供一定的方式和規則讓用戶標識自己的名字或身份,以便每次用戶登陸系統時,對比數據庫記錄的合法用戶信息,通過驗證方能訪問數據庫。具體設計數據庫時我們可以創建sys_user表,這些用戶的標識和鑒別信息在sys_user表中保存,用戶每次登錄系統時應用程序都會對比用戶所輸入的用戶名和密碼與數據庫這樣就可以確定用戶是否合法。
2.2存取控制
數據庫安全中最重要的一方面是確保只允許有一定資格的用戶去訪問數據庫中特定的表或者數據,這主要是通過數據庫系統的存取控制實現的。目的是將用戶權限等級到數據字典中。用戶只訪問他有權訪問的數據。每當用戶進行某些數據的查詢、插入、修改、刪除等操作時,先對其進行一些檢查,主要檢查這些用戶的操作權限,若用戶的操作請求超出了或者不符合系統定義的權限,系統將拒絕用戶執行此操作。
比如:管理人員可以被允許訪問系統內全部的數據;單個部門只能訪問本部門的在建以及歷史數據。
2.3定義視圖
視圖是從一個或者多個表(視圖)中所導出的表,其結構的構成和數據確立是建立在查詢這些表(視圖)基礎上的。視圖并不是真是存在的表而是一張虛表,視圖所對應的數據是在視圖所引用的基礎表中存儲的。
在關系數據庫中,可以根據實際的需求為特定的用戶定義特定的視圖。讓表中的一部分數據只對一部分特定的用戶可見。如果一些數據是保密的,就可以使用視圖把這些數據隱藏起來,使沒有獲得授權的用戶不能看到這些數據。對數據庫提供安全保護。
比如某公司有A、B兩個部門,A部門只能訪問本部門的在建、歷史項目數據;其他項目的數據對其是不可見的。可以為A項目建立“部門人力資源視圖”,從數據庫“部門人力資源信息表”查看A項目的人員情況。
2.4使用存儲過程
存儲過程通過隔離的方法提高了數據庫的安全性,通過授權可以讓用戶只能執行存儲構成而不能直接訪問數據庫對象。建立一個存儲過程是很靈活的,并且可以實現一定的邏輯處理。
2.5充分利用系統全局區域SGA(System Global Area)
我們用Oracle設計數據庫,當我們啟動Oracle的數據庫時,系統為了儲存用戶所需要數據及Oracle正常運行所必備系統信息,首先會在內存內規劃出來一個固定的區域使用。這個區域我們稱為系統全局區(System Global Area),簡稱SGA。數據庫管理員可以依據數據庫實際運行狀況根據需要調整數據庫系統全局區(SGA區)的數據庫緩沖區、共享池和日志緩沖區的大小。只有合理設置這些內存緩沖區,才可很大加快數據的查詢速度,只要所使用的內存區足夠大就可以把絕大多數的數據都存儲在內存中,只有那些不活躍的不經常使用的數據,才從磁盤中讀取。這里有一點是需要注意的,SGA區并不是我們想象的越大越好,SGA區如果過大就會占用操作系統所使用的內存從而引起虛擬內存的頁面交換,這樣的話反而會降低系統運行性能, SGA的尺寸不大于物理內存的一半是我們所設計的原則。
在 Oracle8i 中,SGA 的大小不是手動設置而是由初始化參數文件內的一些參數所設定,這其中有不是很方便的地方是每次調整后必須等重新激活數據庫這才能生效。從Oracle9i 以后,DBA 可以動態配置內存的大小;這樣的數據庫技術我們稱為「dynamicSGA」。有了dynamic SGA ,SGA的各組成區域都可以動態地進行規劃與調整,而不需先關閉數據庫。
數據庫管理員只有認真分析Oracle在其運行使用過程中可能出現的各種安全性問題,綜合運用上面介紹的規律,Oracle數據庫才能高效、安全、可靠地運行。這里還需要指出的是,數據庫的安全是一個系統工程,涉及到方方面面,我們設計的時候要考慮到各個方面綜合分析,不能只根據一個特定時間點的安全情況就斷定數據庫安全運行的好與壞。
參考文獻:
[1]聶軍.論數據庫安全性設計[J].中國現代教育裝備,2009(01).
[2]凃云杰.云背景下的數據庫安全性研究[J].價值工程,2015(21).
[3]常紅梅.基于存儲過程的數據庫安全性實踐初論[J].網絡安全技術與應用,2014(04).
[4]郭霞.基于Oracle數據庫性能優化技術研究[J].電腦知識與技術,2011(07).
DOI:10.16640/j.cnki.37-1222/t.2016.11.234