[摘要] 對基于B/S三層體系結(jié)構(gòu)下的大型關(guān)系數(shù)據(jù)庫的安全機制,從用戶管理、授權(quán)機制、靜態(tài)設(shè)置、角色管理、審計監(jiān)控、數(shù)據(jù)跟蹤,多側(cè)面、多角度討論了數(shù)據(jù)安全管理。
[關(guān)鍵詞] 角色 視圖 權(quán)限
構(gòu)建一種由系統(tǒng)開發(fā)人員采用軟件技術(shù)在后臺開發(fā)完成,由信息系統(tǒng)用戶在客戶端應(yīng)用層面上實現(xiàn)的通用數(shù)據(jù)庫安全管理控制服務(wù)模塊,通過它的運作配合信息系統(tǒng)用戶的管理,從客戶端到數(shù)據(jù)庫服務(wù)器端,實現(xiàn)層層設(shè)防。本文所研究的目標(biāo)是:在已有的C2級DBMS的基礎(chǔ)上,為信息系統(tǒng)搭建通用模塊,在中間層實現(xiàn)以強制訪問控制為主要特征的B類安全要求。
一、DBSC安全管理方案的分析
1.DBMS安全訪問控制機制
當(dāng)前流行的數(shù)據(jù)庫管理系統(tǒng)大都是關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它們支持應(yīng)用系統(tǒng)的三層體系結(jié)構(gòu)和分布式數(shù)據(jù)庫。其實現(xiàn)數(shù)據(jù)庫安全性的技術(shù)和效果在如下幾個方面是具有共同性的。
(1)定義角色。數(shù)據(jù)庫的權(quán)限管理是一項十分艱巨的工作,系統(tǒng)中的用戶及應(yīng)用程序都要有一定的權(quán)限集,才能進(jìn)行工作。對于一個具有諸多表,諸多用戶及各種不同職責(zé)的應(yīng)用環(huán)境,一旦應(yīng)用系統(tǒng)改變了,用戶的權(quán)限也需要相應(yīng)的改變,DBA就需要做很多工作來完成這些改變?;诮巧臋?quán)限管理較好的解決了這些問題,只需根據(jù)部門和企業(yè)的安全政策、操作規(guī)則劃分出不同的數(shù)據(jù)庫角色,通??梢詾橄到y(tǒng)的每個職務(wù)定義一個數(shù)據(jù)庫角色,然后根據(jù)需要把這些角色授予相應(yīng)用戶,即使某職務(wù)的權(quán)限發(fā)生了改變,也需要簡單的該職務(wù)相對應(yīng)的角色的權(quán)限,而不必修改該職務(wù)的每一個用戶的權(quán)限。
(2)建立視圖。視圖是從表和其他視圖導(dǎo)出的虛表,一樣由列組成。它不但可以簡化用戶對數(shù)據(jù)庫的操作,而且也提供了實現(xiàn)數(shù)據(jù)庫安全性的手段。如果希望一個基本表的某些行或列不讓某些用戶知道,就可以由表的屬主或DBA利用創(chuàng)建視圖的方法對表的若干行或若千列進(jìn)行授權(quán),對不同用戶定義不同視圖,且在用戶視圖中不包括保密的列,然后為這些用戶提供某個視圖而不是整張表。
(3)建立觸發(fā)器。觸發(fā)器是為響應(yīng)對表執(zhí)行的插入、更新或刪除操作而執(zhí)行的一種特殊的存儲過程。當(dāng)進(jìn)行上述任何一項操作時,就會自動啟動觸發(fā)器。觸發(fā)器通常用于強制執(zhí)行實現(xiàn)業(yè)務(wù)規(guī)則,實現(xiàn)獨特的安全要求,諸如限制對數(shù)據(jù)庫的訪問的時間等等。它們能監(jiān)視更改并確保更改符合建立的業(yè)務(wù)規(guī)則。
(4)備份恢復(fù)策略。數(shù)據(jù)備份與恢復(fù)是實現(xiàn)信息安全運行的重要技術(shù)之一,能保證信息系統(tǒng)因各種原因遭到破壞時,能盡快投入使用。不同的數(shù)據(jù)庫擁有不同的備份恢復(fù)方法。一般來說,數(shù)據(jù)庫的備份有導(dǎo)出/導(dǎo)入、冷備份、熱備份;數(shù)據(jù)庫的恢復(fù)可以通過磁盤鏡像、數(shù)據(jù)庫備份文件和數(shù)據(jù)庫在線日志三種方式完成。
2.應(yīng)用服務(wù)器端安全訪問控制
(1)用戶賬號管理設(shè)計。建立一個口令安全策略,以維護(hù)數(shù)據(jù)庫用戶的登錄安全。DBSC采用以下策略:
自建方法:來限制用戶使用系統(tǒng)和數(shù)據(jù)庫資源,管理用戶口令,從而有效的阻止對數(shù)據(jù)庫口令的攻擊。DBSC使用自建方法實現(xiàn)了以下功能:①終止用戶口令——設(shè)置用戶賬戶的最大使用期限,要求數(shù)據(jù)庫用戶定期的修改他們的口令;②重新使用用戶口令——鎖住一個過期的賬戶或者多次注冊失敗的賬戶,并且對他們進(jìn)行使能管理;③組合用戶口令——強制用戶的口令為一種標(biāo)準(zhǔn)的組合。
通過以上參數(shù)的動態(tài)合理配置,能減少口令被猜中、窮舉的可能性,增強了口令的安全。
(2)角色代理設(shè)計。在DBSC中我們采用一種方式—“角色代理”來管理用戶初級權(quán)限并來防止上面出現(xiàn)的安全“漏洞”。即將所有客戶端用戶信息轉(zhuǎn)移到一個只由DBA管理的角色用戶,通過動態(tài)的激活和回收使客戶端應(yīng)用程序在獲得特定的角色前不能對后臺數(shù)據(jù)庫進(jìn)行操作。
(3)權(quán)限管理設(shè)計。角色代理,僅僅完成用戶的初級權(quán)限分配。從應(yīng)用系統(tǒng)上來說,不同的用戶可以操作的業(yè)務(wù)子系統(tǒng)是不同的;從數(shù)據(jù)庫服務(wù)器上來說,有著相同模塊操作權(quán)限的不同用戶,他們操作表、視圖、行列的權(quán)限又各不相同,這主要是由他們各自崗位的不同所決定的。使用應(yīng)用程序的用戶應(yīng)該是數(shù)據(jù)庫管理系統(tǒng)中的普通用戶,與其在數(shù)據(jù)庫服務(wù)器上的身份保持一致;應(yīng)用系統(tǒng)需要按功能劃分為不同的業(yè)務(wù)子系統(tǒng),用戶只能對他有權(quán)使用的業(yè)務(wù)子系統(tǒng)而涉及的數(shù)據(jù)庫對象有相應(yīng)的使用權(quán)限。
(4)安全審計。在數(shù)據(jù)安全控制器DBSC中,提供權(quán)限跟蹤安全審計功能,對于所有提交到數(shù)據(jù)庫的訪問信息,記錄其中的重要事件,主要有:①登錄審計表;②用戶數(shù)據(jù)庫操作審計表。
(5)敏感數(shù)據(jù)加密。由于敏感數(shù)據(jù)的可變性低,數(shù)據(jù)安全控制器DBSC利用“敏感字段表”靜態(tài)指定敏感數(shù)據(jù),動態(tài)進(jìn)行加密的方式實現(xiàn)。
(6)在線日志備份。在線文件日志是在DBSC進(jìn)行安全審計的時候同步生成的,它以文件格式記錄所有提交數(shù)據(jù)庫并成功執(zhí)行的SQL語句、用戶名、操作時間等相關(guān)信息。其作用就是在數(shù)據(jù)庫被意外破壞后,配合數(shù)據(jù)庫服務(wù)器端提供的備份策略,對已經(jīng)恢復(fù)到“某一時間點上”數(shù)據(jù)庫,逐條執(zhí)行在其中記錄的數(shù)據(jù)庫操作,以實現(xiàn)數(shù)據(jù)庫服務(wù)器的“最近點恢復(fù)”。
二、結(jié)論
數(shù)據(jù)庫安全控制器基于三層體系結(jié)構(gòu),具有以下幾方面的優(yōu)點:
1.DBSC的安全管理集成在應(yīng)用系統(tǒng)中,駐留在應(yīng)用服務(wù)器端,作為信息系統(tǒng)的一個子功能,將用戶賬號管理、權(quán)限分配、審計、數(shù)據(jù)備份都提升到應(yīng)用服務(wù)器這一層。
2.通過方案的設(shè)計可以看出,本方案充分利用了數(shù)據(jù)庫本身所提供的功能強大的安全機制,將這個整個應(yīng)用系統(tǒng)的安全管理構(gòu)架在數(shù)據(jù)庫的安全管理之上。
參考文獻(xiàn):
[1]劉啟原劉怡:數(shù)據(jù)庫與信息系統(tǒng)的安全,科學(xué)出版社,2000.1
[2]邵佩英:分布式數(shù)據(jù)庫系統(tǒng)及其應(yīng)用,科學(xué)出版社,2000.6