為了保證數據庫數據的安全可靠性和正確有效
DBMS必須提供統一的數據保護功能
數據保護也為數據控制
主要包括數據庫的安全性
完整性
並發控制和恢復
一
數據庫的安全性
數據庫的安全性是指保護數據庫以防止不合法的使用所造成的數據洩露
更改或破壞
計算機系統都有這個問題
在數據庫系統中大量數據集中存放
為許多用戶共享
使安全問題更為突出
在一般的計算機系統中
安全措施是一級一級設置的
在DB存儲這一級可采用密碼技術
當物理存儲設備失竊後
它起到保密作用
在數據庫系統這一級中提供兩種控制
用戶標識和鑒定
數據存取控制
在ORACLE多用戶數據庫系統中
安全機制作下列工作
l 防止非授權的數據庫存取
l 防止非授權的對模式對象的存取
l 控制磁盤使用
l 控制系統資源使用
l 審計用戶動作
數據庫安全可分為二類
系統安全性和數據安全性
系統安全性是指在系統級控制數據庫的存取和使用的機制
包含
l 有效的用戶名/口令的組合
l 一個用戶是否授權可連接數據庫
l 用戶對象可用的磁盤空間的數量
l 用戶的資源限制
l 數據庫審計是否是有效的
l 用戶可執行哪些系統操作
數據安全性是指在對象級控制數據庫的存取和使用的機制
包含
l 哪些用戶可存取一指定的模式對象及在對象上允許作哪些操作類型
在ORACLE服務器上提供了一種任意存取控制
是一種基於特權限制信息存取的方法
用戶要存取一對象必須有相應的特權授給該用戶
已授權的用戶可任意地可將它授權給其它用戶
由於這個原因
這種安全性類型叫做任意型
ORACLE利用下列機制管理數據庫安全性
l 數據庫用戶和模式
l 特權
l 角色
l 存儲設置和空間份額
l 資源限制
l 審計
. 數據庫的存取控制
ORACLE保護信息的方法采用任意存取控制來控制全部用戶對命名對象的存取
用戶對對象的存取受特權控制
一種特權是存取一命名對象的許可
為一種規定格式
ORACLE使用多種不同的機制管理數據庫安全性
其中有兩種機制
模式和用戶
模式為模式對象的集合
模式對象如表
視圖
過程和包等
第一數據庫有一組模式
每一ORACLE數據庫有一組合法的用戶
可存取一數據庫
可運行一數據庫應用和使用該用戶各連接到定義該用戶的數據庫
當建立一數據庫用戶時
對該用戶建立一個相應的模式
模式名與用戶名相同
一旦用戶連接一數據庫
該用戶就可存取相應模式中的全部對象
一個用戶僅與同名的模式相聯系
所以用戶和模式是類似的
用戶的存取權利受用戶安全域的設置所控制
在建立一個數據庫的新用戶或更改一已有用戶時
安全管理員對用戶安全域有下列決策
l 是由數據庫系統還是由操作系統維護用戶授權信息
l 設置用戶的缺省表空間和臨時表空間
l 列出用戶可存的表空間和在表空間中可使用空間份額
l 設置用戶資源限制的環境文件
該限制規定了用戶可用的系統資源的總量
l 規定用戶具有的特權和角色
可存取相應的對象
每一個用戶有一個安全域
它是一組特性
可決定下列內容
l 用戶可用的特權和角色
l 用戶可用的表空間的份額
l 用戶的系統資源限制
) 用戶鑒別
為了防止非授權的數據庫用戶的使用
ORACLE提供二種確認方法
操作系統確認和相應的ORACLE數據庫確認
如果操作系統允許
ORACLE可使用操作系統所維護的信息來鑒定用戶
由操作系統鑒定用戶的優點是
l 用戶可更方便地連接到ORACLE
不需要指定用戶名和口令
l 對用戶授權的控制集中在操作系統
ORACLE不需要存儲和管理用戶口令
然而用戶名在數據庫中仍然要維護
l 在數據庫中的用戶名項和操作系統審計跟蹤相對應
ORACLE數據庫方式的用戶確認
ORACLE利用存儲在數據庫中的信息可鑒定試圖接到數據庫的一用戶
這種鑒別方法僅當操作系統不能用於數據庫用戶鑒別時才使用
當用戶使用一ORACLE數據庫時執行用戶鑒別
每個用戶在建立時有一個口令
用戶口令在建立對數據庫連接時使用
以防止對數據庫非授權的使用
用戶的口令以密碼的格式存儲在數據庫數據字典中
用戶可隨時修改其口令
) 用戶的表空間設置和定額
關於表空間的使用有幾種設置選擇
l 用戶的缺省表空間
l 用戶的臨時表空間
l 數據庫表空間的空間使用定額
) 用戶資源限制和環境文件
用戶可用的各種系統資源總量的限制是用戶安全域的部分
利用顯式地設置資源限制
安全管理員可防止用戶無控制地消耗寶貴的系統資源
資源限制是由環境文件管理
一個環境文件是命名的一組賦給用戶的資源限制
另外ORACLE為安全管理員在數據庫級提供使能或使不能實施環境文件資源限制的選擇
ORACLE可限制幾種類型的系統資源的使用
每種資源可在會話級
調用級或兩者上控制
在會話級
每一次用戶連接到一數據庫
建立一會話
每一個會話在執行SQL語句的計算機上耗費CPU時間和內存量進行限制
對ORACLE的幾種資源限制可在會話級上設置
如果會話級資源限制被超過
當前語句被中止(回滾)
並返回指明會話限制已達到的信息
此時
當前事務中所有之前執行的語句不受影響
此時僅可作COMMIT
ROLLBACK或刪除對數據庫的連接等操作
進行其它操作都將出錯
在調用級
在SQL語句執行時
處理該語句有好幾步
為了防止過多地調用系統
ORACLE在調用級可設置幾種資源限制
如果調用級的資源限制被超過
語句處理被停止
該 語句被回滾
並返回一錯誤
然而當前事務的已執行所用語句不受影響
用戶會話繼續連接
有下列資源限制
l 為了防止無控制地使用CPU時間
ORACLE可限制每次ORACLE調用的CPU時間和在一次會話期間ORACLE調用所使用的CPU的時間
以
秒為單位
l 為了防止過多的I/O
ORACLE可限制每次調用和每次會話的邏輯數據塊讀的數目
l ORACLE在會話級還提供其它幾種資源限制
每個用戶的並行會話數的限制
會話空閒時間的限制
如果一次會話的ORACLE調用之間時間達到該空閒時間
當前事務被回滾
會話被中止
會話資源返回給系統
每次會話可消逝時間的限制
如果一次會話期間超過可消逝時間的限制
當前事務被回滾
會話被刪除
該會話的資源被釋放
每次會話的專用SGA空間量的限制
用戶環境文件
用戶環境文件是指定資源限制的命名集
可賦給ORACLE數據庫的有效的用戶
利用用戶環境文件可容易地管理資源限制
要使用用戶環境文件
首先應將數據庫中的用戶分類
決定在數據庫中全部用戶類型需要多少種用戶環境文件
在建立環境文件之前
要決定每一種資源限制的值
例如一類用戶通常不執行大量邏輯數據塊讀
那就可將LOGICAL
READS
PER
SESSION和LOGICAL
READS
PER
CALL設置相應的值
在許多情況中決定一用戶的環境文件的合適資源限制的最好的方法是收集每種資源使用的歷史信息
. 特權和角色
) 特權
特權是執行一種特殊類型的SQL語句或存取另一用戶的對象的權力
有兩類特權
系統特權和對象特權
系統特權
是執行一處特殊動作或者在對象類型上執行一種特殊動作的權利
ORACLE有
多種不同系統特權
每一種系統允許用戶執行一種特殊的數據庫操作或一類數據庫操作
系統特權可授權給用戶或角色
一般
系統特權全管理人員和應用開發人員
終端用戶不需要這些相關功能
授權給一用戶的系統特權並具有該 系統特權授權給其他用戶或角色
反之
可從那些被授權的用戶或角色回收系統特權
對象特權
在指定的表
視圖
序列
過程
函數或包上執行特殊動作的權利
對於不同類型的對象
有不同類型的對象特權
對於有些模式對象
如聚集
索引
觸發器
數據庫鏈沒有相關的對象特權
它們由系統特權控制
對於包含在某用戶名的模式中的對象
該用戶對這些對象自動地具有全部對象特權
即模式的持有者對模式中的對象具有全部對象特權
這些對象的持有者可將這些對象上的任何對象特權可授權給其他用戶
如果被授者包含有GRANT OPTION 授權
那麼該被授者也可將其權利再授權給其他用戶
) 角色
為相關特權的命名組
可授權給用戶和角色
ORACEL利用角色更容易地進行特權管理
有下列優點
l 減少特權管理
不要顯式地將同一特權組授權給幾個用戶
只需將這特權組授給角色
然後將角色授權給每一用戶
l 動態特權管理
如果一組特權需要改變
只需修改角色的特權
所有授給該角色的全部用戶的安全域將自動地反映對角色所作的修改
l 特權的選擇可用性
授權給用戶的角色可選擇地使其使能(可用)或使不能(不可用)
l 應用可知性
當一用戶經一用戶名執行應用時
該數據庫應用可查詢字典
將自動地選擇使角色使能或不能
l 專門的應用安全性
角色使用可由口令保護
應用可提供正確的口令使用權角色使能
達到專用的應用安全性
因用戶不知其口令
不能使角色使能
一般
建立角色服務於兩個目的
為數據庫應用管理特權和為用戶組管理特權
相應的角色稱為應用角色和用戶角色
應用角色是授予的運行一數據庫應用所需的全部特權
一個應用角色可授給其它角色或指定用戶
一個應用可有幾種不同角色
具有不同特權組的每一個角色在使用應用時可進行不同的數據存取
用戶角色是為具有公開特權需求的一組數據庫用戶而建立的
用戶特權管理是受應
From:http://tw.wingwit.com/Article/program/Oracle/201311/17912.html