Oracle中存取控制介紹
Oracle使用多種不同的機(jī)制管理數(shù)據(jù)庫安全性,其中有兩種機(jī)制:模式和用戶。模式為模式對象的集合,模式對象如表、視圖、過程和包等。第一數(shù)據(jù)庫有一組模式。 每一Oracle數(shù)據(jù)庫有一組合法的用戶,可存取一數(shù)據(jù)庫,可運(yùn)行一數(shù)據(jù)庫應(yīng)用和使用該用戶各連接到定義該用戶的數(shù)據(jù)庫。當(dāng)建立一數(shù)據(jù)庫用戶時(shí),對該用戶建立一個(gè)相應(yīng)的模式,模式名與用戶名相同。一旦用戶連接一數(shù)據(jù)庫,該用戶就可存取相應(yīng)模式中的全部對象,一個(gè)用戶僅與同名的模式相聯(lián)系,所以用戶和模式是類似的。
用戶的存取權(quán)利受用戶安全域的設(shè)置所控制,在建立一個(gè)數(shù)據(jù)庫的新用戶或更改一已有用戶時(shí),安全管理員對用戶安全域有下列決策:
是由數(shù)據(jù)庫系統(tǒng)還是由操作系統(tǒng)維護(hù)用戶授權(quán)信息。
設(shè)置用戶的缺省表空間和臨時(shí)表空間。
列出用戶可存的表空間和在表空間中可使用空間份額。
設(shè)置用戶資源限制的環(huán)境文件,該限制規(guī)定了用戶可用的系統(tǒng)資源的總量。
規(guī)定用戶具有的特權(quán)和角色,可存取相應(yīng)的對象。
每一個(gè)用戶有一個(gè)安全域,它是一組特性,可決定下列內(nèi)容:
用戶可用的特權(quán)和角色;
用戶可用的表空間的份額;
用戶的系統(tǒng)資源限制。
(1)用戶鑒別:
為了防止非授權(quán)的數(shù)據(jù)庫用戶的使用,ORACLE提供二種確認(rèn)方法
操作系統(tǒng)確認(rèn)和相應(yīng)的ORACLE數(shù)據(jù)庫確認(rèn)。
如果操作系統(tǒng)允許,ORACLE可使用操作系統(tǒng)所維護(hù)的信息來鑒定用戶。由操作系統(tǒng)鑒定用戶的優(yōu)點(diǎn)是:
用戶可更方便地連接到ORACLE,不需要指定用戶名和口令。
對用戶授權(quán)的控制集中在操作系統(tǒng),ORACLE不需要存儲和管理用戶口令。然而用戶名在數(shù)據(jù)庫中仍然要維護(hù)。
在數(shù)據(jù)庫中的用戶名項(xiàng)和操作系統(tǒng)審計(jì)跟蹤相對應(yīng)。
Oracle數(shù)據(jù)庫方式的用戶確認(rèn):Oracle利用存儲在數(shù)據(jù)庫中的信息可鑒定試圖接到數(shù)據(jù)庫的一用戶,這種鑒別方法僅當(dāng)操作系統(tǒng)不能用于數(shù)據(jù)庫用戶鑒別時(shí)才使用。當(dāng)用戶使用一Oracle數(shù)據(jù)庫時(shí)執(zhí)行用戶鑒別。每個(gè)用戶在建立時(shí)有一個(gè)口令,用戶口令在建立對數(shù)據(jù)庫連接時(shí)使用,以防止對數(shù)據(jù)庫非授權(quán)的使用。用戶的口令以密碼的格式存儲在數(shù)據(jù)庫數(shù)據(jù)字典中,用戶可隨時(shí)修改其口令。
(2)用戶的表空間設(shè)置和定額
關(guān)于表空間的使用有幾種設(shè)置選擇:
用戶的缺省表空間;
用戶的臨時(shí)表空間;
數(shù)據(jù)庫表空間的空間使用定額。
(3)用戶資源限制和環(huán)境文件
用戶可用的各種系統(tǒng)資源總量的限制是用戶安全域的部分。利用顯式地設(shè)置資源限制;安全管理員可防止用戶無控制地消耗寶貴的系統(tǒng)資源。資源限制是由環(huán)境文件管理。一個(gè)環(huán)境文件是命名的一組賦給用戶的資源限制。另外Oracle為安全管理員在數(shù)據(jù)庫級提供使能或使不能實(shí)施環(huán)境文件資源限制的選擇。
Oracle可限制幾種類型的系統(tǒng)資源的使用,每種資源可在會話級、調(diào)用級或兩者上控制。在會話級:每一次用戶連接到一數(shù)據(jù)庫,建立一會話。每一個(gè)會話在執(zhí)行SQL語句的計(jì)算機(jī)上耗費(fèi)CPU時(shí)間和內(nèi)存量進(jìn)行限制。對Oracle的幾種資源限制可在會話級上設(shè)置。如果會話級資源限制被超過,當(dāng)前語句被中止(回滾),并返回指明會話限制已達(dá)到的信息。此時(shí),當(dāng)前事務(wù)中所有之前執(zhí)行的語句不受影響,此時(shí)僅可作COMMIT、ROLLBACK或刪除對數(shù)據(jù)庫的連接等操作,進(jìn)行其它操作都將出錯(cuò)。
在調(diào)用級:在SQL語句執(zhí)行時(shí),處理該語句有好幾步,為了防止過多地調(diào)用系統(tǒng),ORACLE在調(diào)用級可設(shè)置幾種資源限制。如果調(diào)用級的資源限制被超過,語句處理被停止,該 語句被回滾,并返回一錯(cuò)誤。然而當(dāng)前事務(wù)的已執(zhí)行所用語句不受影響,用戶會話繼續(xù)連接。
有下列資源限制:
為了防止無控制地使用CPU時(shí)間,ORACLE可限制每次ORACLE調(diào)用的CPU時(shí)間和在一次會話期間ORACLE調(diào)用所使用的CPU的時(shí)間,以0.01秒為單位。
為了防止過多的I/O,Oracle可限制每次調(diào)用和每次會話的邏輯數(shù)據(jù)塊讀的數(shù)目。
Oracle在會話級還提供其它幾種資源限制。
每個(gè)用戶的并行會話數(shù)的限制;
會話空閑時(shí)間的限制,如果一次會話的ORACLE調(diào)用之間時(shí)間達(dá)到該空閑時(shí)間,當(dāng)前事務(wù)被回滾,會話被中止,會話資源返回給系統(tǒng);
每次會話可消逝時(shí)間的限制,如果一次會話期間超過可消逝時(shí)間的限制,當(dāng)前事務(wù)被回滾,會話被刪除,該會話的資源被釋放;
每次會話的專用SGA空間量的限制。
用戶環(huán)境文件:
用戶環(huán)境文件是指定資源限制的命名集,可賦給ORACLE數(shù)據(jù)庫的有效的用戶。利用用戶環(huán)境文件可容易地管理資源限制。要使用用戶環(huán)境文件,首先應(yīng)將數(shù)據(jù)庫中的用戶分類,決定在數(shù)據(jù)庫中全部用戶類型需要多少種用戶環(huán)境文件。在建立環(huán)境文件之前,要決定每一種資源限制的值。例如一類用戶通常不執(zhí)行大量邏輯數(shù)據(jù)塊讀,那就可將LOGICAL-READS-PER-SESSION和LOGICAL-READS-PER-CALL設(shè)置相應(yīng)的值。在許多情況中決定一用戶的環(huán)境文件的合適資源限制的最好的方法是收集每種資源使用的歷史信息。;
相關(guān)文章:
1. Oracle Optimizer:遷移到使用基于成本的優(yōu)化器-----系列1.22. 上海Oracle OpenWorld大會紀(jì)事-07.193. Oracle 中檢查臨時(shí)表空間的方法4. Oracle中PL/SQL單行函數(shù)和組函數(shù)詳解5. Oracle存儲過程中去掉重復(fù)字符串函數(shù)6. 數(shù)據(jù)庫人員手冊之ORACLE應(yīng)用源碼7. 解決Oracle賬戶被鎖定的問題8. oracle中all、any函數(shù)用法與區(qū)別說明9. 優(yōu)化調(diào)整Oracle 8i數(shù)據(jù)庫系統(tǒng)10. Oracle9i(9.2.0.4) Installation Errors Under Redhat 9
