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