計算機系統的安全性一直都是令開發者頭痛的問題,特別是在數據庫系統中,由於數據大量集中存放,且為眾多用戶直接共享,安全性問題更為突出。安全性問題給我們帶來的危害無須多言,世界上多家大型銀行都在不同程度上遭受到非法入侵者的襲擊,但由於商業原因,這些銀行都不願意公布損失程度,使安全性問題更難以解決。Sybase作為一種大型數據庫系統,其安全性控制策略較為典型。本文以Sybase數據庫為例簡要介紹在大型數據庫中常見的安全性控制策略。
安全性控制的層次結構
Sybase數據庫為開發者提供了有效的安全性控制策略,既注重數據訪問的安全性和監督用戶的登錄,又兼顧了用戶在使用數據時對速度的要求。Sybase中的安全性是依靠分層解決的,它的安全措施也是一級一級層層設置的,真正做到了層層設防。第一層是注冊和用戶許可,保護對服務器的基本存取;第二層是存取控制,對不同用戶設定不同的權限,使數據庫得到最大限度的保護;第三層是增加限制數據存取的視圖和存儲過程,在數據庫與用戶之間建立一道屏障。
安全性問題的基本原則
Sybase基於上述層次結構的安全體系,提出以下幾點實施安全的原則:
1、選擇性訪問控制(Discretionary Access Controls DAC),DAC用來決定用戶是否有權訪問數據庫對象;
2、驗證,驗證就是保證只有授權的合法用戶才能注冊和訪問;
3、授權,對不同的用戶訪問數據庫授予不同的權限;
4、審計,監視系統發生的一切事件。
Sybase的安全控制策略
基於上述四點原則,Sybase提供了四種基本策略進行安全性控制。
在創建服務器時,Sybase將所有權限都分配給系統管理員,系統管理員可以在服務器上增加注冊者(Logins)(只有系統管理員有此權限)。Logins可以登錄服務器但不能訪問數據庫。數據庫屬主(DBO)有權增加用戶(users),users可以使用分配給它的數據庫。當users訪數據庫時,首先以Logins身份進入服務器,系統自動打開默認數據庫,Logins身份轉化為users身份。
在用戶登錄後,系統要通過口令進行驗證,以防止非法用戶盜用他人的用戶名進行登錄。這一驗證步驟在登錄時的注冊對話框中出現,注冊與驗證同時進行,用戶名與口令有一個不符,登錄請求被拒絕。
權限使得用戶在數據庫中活動范圍僅被容許在小范圍內,大大提高了數據庫的安全性。在Sybase系統中,對象的所有者或創建者自動被授予對對象的許可權。所有者則有權決定把許可權授予其他用戶。Sybase提供了GRANT和REVOKE命令,以便授予或取消許可權。數據庫所有者和系統管理員享有特殊許可權,包括數據庫所有者(Database Owner,DBO)對自己所擁有的數據庫中的一切對象具有全部許可權;系統管理員(System Administrantion,SA)享有服務器內的所有數據庫的一切對象的許可權。