Oracle數(shù)據(jù)安全性的介紹
Oracle數(shù)據(jù)安全性就是指保護(hù)數(shù)據(jù),防止他人非法的使用,以避免造成相關(guān)數(shù)據(jù)有意或是無意的丟失、泄露或是破壞。但是數(shù)據(jù)庫系統(tǒng)中存在集中存放有大量的數(shù)據(jù),這些數(shù)據(jù)又為眾多用戶所共享,所以安全約束是一個(gè)極為突出的問題。
Oracle數(shù)據(jù)庫系統(tǒng)在實(shí)現(xiàn)數(shù)據(jù)庫安全性管理方面采取的基本措施有:
通過驗(yàn)證用戶名稱和口令,防止非Oracle用戶注冊(cè)到Oracle數(shù)據(jù)庫,對(duì)數(shù)據(jù)庫進(jìn)行非法存取操作。
授予用戶一定的權(quán)限,例如connect,resource等,限制用戶操縱數(shù)據(jù)庫的權(quán)力。
授予用戶對(duì)數(shù)據(jù)庫實(shí)體(如表、表空間、過程等)的存取執(zhí)行權(quán)限,阻止用戶訪問非授權(quán)數(shù)據(jù)。
提供數(shù)據(jù)庫實(shí)體存取審計(jì)機(jī)制,使數(shù)據(jù)庫管理員可以監(jiān)視數(shù)據(jù)庫中數(shù)據(jù)的存取情況和系統(tǒng)資源的使用情況。
采用視圖機(jī)制,限制存取基表的行和列集合。
在實(shí)際應(yīng)用中,許多系統(tǒng)往往采用假用戶(即非數(shù)據(jù)庫用戶)身份來管理,而真實(shí)用戶的身份和登錄口令就隱藏在應(yīng)用系統(tǒng)中,或經(jīng)過各種壓縮加密等處理的配置文件中。但這樣往往留下隱患,只要從分析應(yīng)用程序入手,最終會(huì)分析出系統(tǒng)使用的數(shù)據(jù)庫用戶和口令,那么其安全性也就消失了。
另一方面,系統(tǒng)代碼是程序員寫出來的,如果程序員有破壞意圖,這種模式?jīng)]有一絲的安全,因?yàn)樗ㄟ^自己掌握的代碼不經(jīng)分析就輕而易舉的獲得登錄用的Oracle數(shù)據(jù)庫用戶和口令。
而采用真實(shí)數(shù)據(jù)庫用戶,存在著權(quán)限分配上的難度,特別是用戶數(shù)和應(yīng)用表數(shù)都很多時(shí),這時(shí)必然要使用角色來管理應(yīng)用權(quán)限的分配。當(dāng)然不能直接將權(quán)限或角色直接分配給用戶,否則用戶可以不同過應(yīng)用系統(tǒng),而采用SQL*PLUS等前端工具進(jìn)入系統(tǒng),進(jìn)行一些沒有經(jīng)過應(yīng)用系統(tǒng)檢查的操作,產(chǎn)生的結(jié)果可能不符合應(yīng)用邏輯。
我們?cè)趯?shí)踐中發(fā)現(xiàn),可以采用另一種方式利用角色功能,來防止上面出現(xiàn)的安全“漏洞”。在這種方式下,用戶采用自己的標(biāo)識(shí)和口令注冊(cè),但在未得到授權(quán)的角色前,是沒有操縱Oracle數(shù)據(jù)庫的任何權(quán)限。而授權(quán)用戶使用的角色是埋在應(yīng)用程序中的,只有應(yīng)用程序才知道角色的名稱和口令,從而激活角色,使用戶擁有相應(yīng)的權(quán)限。
在應(yīng)用系統(tǒng)之外,用戶可以連接到Oracle,但沒有激活相應(yīng)的角色,他是不能做任何事情的,而開發(fā)人員不知道用戶的標(biāo)識(shí)和口令,他沒有辦法登錄到Oracle,即使他能夠推算出角色的標(biāo)識(shí)和口令。
【編輯推薦】