【正文】
統(tǒng)權(quán)限分配給用戶。系統(tǒng)權(quán)限決定了用戶在數(shù)據(jù)庫級別上可以執(zhí)行的操作。一旦將權(quán)限授予了用戶,該用戶便可以立即使用這些權(quán)限。 GRANT privilege [, privilege...] TO user [, user| role, PUBLIC...]。 GRANT create session, create table, create sequence, create view TO scott。 13 home back first prev next last 用戶系統(tǒng)權(quán)限 ? 用戶必須擁有 CREATE SESSION 權(quán)限和用戶標(biāo)識才能訪問數(shù)據(jù)庫。 ? 在 Oracle Application Express 中不能發(fā)出CREATE SESSION 命令,此操作自動在后臺執(zhí)行。 ? 但是在 sqlplus 中可以執(zhí)行 CREATE SESSION 命令 14 home back first prev next last 對象安全性 ? 這一級別的安全性包括訪問和使用數(shù)據(jù)庫對象以及用戶可對這些對象執(zhí)行的操作。 15 home back first prev next last 對象安全性 ? 每個對象都有特定的一組可授予的權(quán)限。 ? 下表針對各種對象列出了相應(yīng)的權(quán)限。關(guān)于對象權(quán)限,請務(wù)必注意以下四點(diǎn): – 1. 適用于序列的權(quán)限只有 SELECT 和 ALTER。請記住,序列使用 ALTER 可以更改 INCREMENT、MAXVALUE、 CACHE/NOCACHE 或CYCLE/NOCYCLE 選項(xiàng)。使用 ALTER 不能更改START WITH。 16 home back first prev next last 對象安全性 ? UPDATE、REFERENCES 和 INSERT 權(quán)限。例如: GRANT UPDATE(salary) ON employees TO allison_plumb。 ?,只對視圖授予SELECT 權(quán)限。不能對單個列授予 SELECT 權(quán)限。 ?4. 對同義詞授予的權(quán)限會轉(zhuǎn)換為對同義詞所引用基表的權(quán)限。換而言之,同義詞是簡單、更易于使用的新名稱。使用該名稱授予權(quán)限就如同對表本身授予權(quán)限一樣。 17 home back first prev next last PUBLIC 關(guān)鍵字 ? 表的所有者可以使用 PUBLIC 關(guān)鍵字將訪問權(quán)限授予所有用戶。 ? 以下示例允許系統(tǒng)中的所有用戶查詢艾麗絲的“部門”表中的數(shù)據(jù)。 GRANT select ON TO PUBLIC。 18 home back first prev next last PUBLIC 關(guān)鍵字 ? 如果語句未使用對象的全名,則 Oracle 服務(wù)器會隱式地將當(dāng)前用戶(或方案)的名稱作為對象名的前綴。 – 例如,如果用戶 scott查詢 departments表,系統(tǒng)會從 scott. Departments 表中進(jìn)行檢索。 ? 如果語句未使用對象的全名,并且當(dāng)前用戶不擁有該名稱的對象,則系統(tǒng)會使用PUBLIC 作為對象名稱的前綴。 – 例如,如果用戶 scott查詢 user_objects 表,而這個表并不屬于 scott ,系統(tǒng)會使用 PUBLIC. user_objects 公用同義詞從數(shù)據(jù)字典視圖中進(jìn)行選擇。 19 home back first prev next last 確認(rèn)授予的權(quán)限 ? 如果您嘗試執(zhí)行未經(jīng)授權(quán)的操作,例如從某個表中刪除一行,而對于這個表您不具有DELETE 權(quán)限,則 Oracle 服務(wù)器不會執(zhí)行該操作。 ? 如果收到 Oracle 服務(wù)器錯誤消息“ table or view does not exist(此表或視圖不存在)”,則表明您可能執(zhí)行了以下操作之一: – 指定了不存在的表或視圖 – 嘗試對您不具有適當(dāng)權(quán)限的表或視圖執(zhí)行了某項(xiàng)操作 20 home back first prev next last 確認(rèn)授予的權(quán)限 ? 您可以訪問數(shù)據(jù)字典來查看您所擁有的權(quán)限。右側(cè)的表對各種數(shù)據(jù)字典視圖進(jìn)行了說明。 ? 使用 Oracle Application Express Developer,輸入USER_ROLE_PRIVS,選擇放大鏡,然后選擇“ Query By Example(按示例查詢)”中的任意項(xiàng)。此時會返回他們的權(quán)限。 21 home back first prev next last 術(shù)語 ? 本課中使用的關(guān)鍵術(shù)語包括: – Privilege(權(quán)限 ) – System privileges(系統(tǒng)權(quán)限 ) – Object privileges(對象權(quán)限