1 引言
信息對於取得成功是非常重要的,但是如果信息被破壞或被錯誤利用,就會給成功帶來威脅。Oracle提供了廣泛的安全特性以保護用戶的信息免受未經授權的訪問及有意或無意的破壞。
這種安全性是在用戶到用戶,權限到權限的基礎上通過授予或撤消權限來提供的,並且是附加於(獨立於)用戶的計算機系統本身已有的安全機制之上。在實現了權限分配的基礎上,我們又面臨著實時跟蹤被使用的系統資源與數據庫資源,監測用戶對數據庫的行為的問題,這就是大型數據庫管理系統所必需的審計功能。在這裡,我們將共同探討Orale用戶權限分配以及審計的實現思想與方法。
2 用戶管理模式
DBMS:DataBase Management System,數據庫管理系統,對數據進行集中統一的管理和操縱。現在主要的DBMS包括:Oracle SQL Server,Sybase Adaptive Server 11,Microsoft SQL Server 6.x,7.x等,在這些DBMS中,都有自己完整的用戶管理模式,一般都以下列方式進行:
登錄用戶:DBO,主要用來提供連接到數據庫服務的;
角色用戶:將登錄用戶劃分為某些組,這些組擁有各種不同的數據庫操作權限,而一個登錄用戶可以扮演不同的角色;
DBMS提供了這些用戶管理的基本方式,並各自對表、視圖、過程、觸發器等有各自的審計及管理的方法。
在實際的應用中,如果實際情況允許,可以對實際的所有用戶建立一個登錄用戶(帳號),並對所有的帳號進行嚴密的權限管理。但是,如果用戶的數量是不固定的,而且可能有上百個,那管理的復雜程度及難度就可想而知了。
這就是所謂的單用戶-多用戶模式。它是指數據庫的登錄用戶模式,所有應用都以統一的用戶登錄,該用戶擁有所有表、視圖、過程、函數等的所有操作權限,而這些對象都被DBO所創建和擁有,可以將這些用戶稱為應用用戶(存放在某表中);而登錄到數據庫的這個用戶即為模式用戶。實際上,為了防止系統外數據登錄,可增加一個聯接用戶,該用戶只能讀取一張表,該表記錄了模式用戶的登錄參數(具體部分可以加密存放);
這種單-多用戶方式在大型的MIS系統中,由於其實現簡單,思路清晰,所以應用是相當多的,其優點是明顯的:
(1) 設置簡單,特別是授權,可以比較輕松地實現;
(2) 管理簡單,只要維護一個模式用戶就可以了;
(3) 對開發人員是透明的,即開發用戶以DBO方式登錄就可以了;
3 設計思想
當前比較可行的方法的要點是:
(1) 所有的實體(表、視圖等等)都由一個登錄用戶建立(DBO)、但是該用戶不擁有連接及操作這些實體的權限(Insert,Delete,Update等等);
(2) 對所有的實際用戶進行分類,歸納為幾個具體的角色(實際角色);
(3) 一種實際角色對應一個登錄用戶,建立帳號系統,進行角色分配、權限設置;
(4) 在Application中,某用戶連接時,根據所扮演的實際角色,以對應的登錄用戶登錄;
(5) 根據對應表中對該用戶的可用模塊(功能),進行適當處理,使用戶只在定制的、允許的范圍內進行功能操作及數據庫操作。
(6)建立審計所需要的表,用於詳細記載要跟蹤的數據庫行為用戶的機器屬性、所擁有的權限與角色、每一次訪問數據庫的起始和截止時間、表級訪問對象、數據操作方式、數據操作對象及具體的動作、操作前後的記錄值等等。
根據以上幾點,在一個具體的應用中,涉及到的開發工作包括: