十四, 角色
oracle 角色
介紹
角色就是相關(guān)權(quán)限的命令集合,使用角色的主要目的就是為了簡(jiǎn)化權(quán)限的管理。
角色分為預(yù)定義和自定義角色兩類
二、3種標(biāo)準(zhǔn)角色
CONNECT Role(連接角色)
擁有CONNECT role的用戶還能夠創(chuàng)建表、視圖、序列(sequence)、簇(cluster)、同義詞(synonym )、會(huì)話(session)和與其他數(shù)據(jù)庫(kù)的鏈(link)。
RESOURCE Role(資源角色)
提供給用戶另外的權(quán)限以創(chuàng)建他們自己的表、序列、過程(procedure)、觸發(fā)器(trigger)、索引(index)和簇(cluster),resource角色隱含unlimited tablespace系統(tǒng)權(quán)限。
3、dba角色
dba角色具有所有的系統(tǒng)權(quán)限,及with admin option選項(xiàng),默認(rèn)的dba用戶為sys和system他們可以將任何系統(tǒng)權(quán)限授予其他用戶。
但是要注意的是dba角色不具備sysdba和sysoper的特權(quán)(啟動(dòng)和關(guān)閉數(shù)據(jù)庫(kù))。
一個(gè)具有DBA角色的用戶可以撤消任何別的用戶甚至別的DBA的CONNECT、RESOURCE 和DBA的其他權(quán)限。當(dāng)然,這樣是很危險(xiǎn)的,因此,除非真正需要,DBA權(quán)限不應(yīng)隨便授予那些不是很重要的一般用戶。
撤消一個(gè)用戶的所有權(quán)限,并不意味著從Oracle中刪除了這個(gè)用戶,也不會(huì)破壞用戶創(chuàng)建的任何表;只是簡(jiǎn)單禁止其對(duì)這些表的訪問。其他要訪問這些表的用戶可以象以前那樣地訪問這些表。
connect角色
connect角色具有一般應(yīng)用開發(fā)人員需要的大部分權(quán)限,當(dāng)建立了一個(gè)用戶后,多數(shù)情況下,只要給用戶授予connect和resource角色就夠了
Connect角色包含以下系統(tǒng)權(quán)限
create cluster
create database link
create session
alter session
create table
create view
create sequence
resource角色
resource角色具有應(yīng)用開發(fā)人員所需要的其它權(quán)限,比如建立存儲(chǔ)過程,觸發(fā)器等。這里需要注意的是resource角色隱含unlimited tablespace系統(tǒng)權(quán)限。
resource角色包含以下系統(tǒng)權(quán)限:
create cluster
create indextype
create table
create sequence
create type
create procedure
create trigger
自定義角色
建立角色(不驗(yàn)證)
如果角色是公用的角色,可以采用不驗(yàn)證的方式建立角色。
建立角色(數(shù)據(jù)庫(kù)驗(yàn)證)
采用這樣的方式時(shí),角色名、口令存放在數(shù)據(jù)庫(kù)中。當(dāng)激活該角色時(shí),必須提供口令。在建立這種角色時(shí),需要為其提供口令。
給角色授權(quán)
給角色授予權(quán)限和給用戶授權(quán)沒有太多區(qū)別,但是要注意,系統(tǒng)權(quán)限的unlimited tablespace和對(duì)象權(quán)限的with grant option選項(xiàng)是不能授予角色的。
分配角色給某個(gè)用戶
一般分配角色是由dba來完成的,如果要以其它用戶身份分配角色,則要求用戶必須具有g(shù)rant any role的系統(tǒng)權(quán)限。
因?yàn)榻o了with admin option選項(xiàng),所以,blake可以把system分配給它的角色分配給別的用戶。
刪除角色
使用drop role,一般是dba來執(zhí)行,如果其它用戶則要求該用戶具有drop any role系統(tǒng)權(quán)限。
顯示角色信息
1)、顯示所有角色
2)、顯示角色具有的系統(tǒng)權(quán)限
SQL> select privilege, admin_option from role_sys_privs where role='角色名';3)、顯示角色具有的對(duì)象權(quán)限
通過查詢數(shù)據(jù)字典視圖dba_tab_privs可以查看角色具有的對(duì)象權(quán)限或是列的權(quán)限。
4)、顯示用戶具有的角色,及默認(rèn)角色
當(dāng)以用戶的身份連接到數(shù)據(jù)庫(kù)時(shí),oracle 會(huì)自動(dòng)的激活默認(rèn)的角色,通過查詢數(shù)據(jù)字典視圖dba_role_privs 可以顯示某個(gè)用戶具有的所有角色及當(dāng)前默認(rèn)的角色。
精細(xì)訪問控制
精細(xì)訪問控制是指用戶可以使用函數(shù),策略實(shí)現(xiàn)更加細(xì)微的安全訪問控制。如果使用精細(xì)訪問控制,則當(dāng)在客戶端發(fā)出sql語(yǔ)句(select,insert,update,delete)時(shí),oracle會(huì)自動(dòng)在sql語(yǔ)句后追加謂詞(where子句),并執(zhí)行新的sql語(yǔ)句,通過這樣的控制,可以使得不同的數(shù)據(jù)庫(kù)用戶在訪問相同表時(shí),返回不同的數(shù)據(jù)信息,
總結(jié)
- 上一篇: 自学c程序设计之路,谭浩强第五版,(一)
- 下一篇: MCR和MRC汇编指令