Oracle為了相容以前的版本,提供了三種標準的角色(role):connect、resource和dba。
1. connect role(串連角色)
臨時使用者,特別是那些不需要建表的使用者,通常只賦予他們connect。connect是使用oracle的簡單許可權,這種許可權只有在對其他使用者的表有訪問權時,包括select、insert、update和delete等,才會變得有意義。擁有connect role的使用者還能夠建立表、視圖、序列(sequence)、簇(cluster)、同義字(synonym )、會話(session)和與其他資料庫的鏈(link)。
查詢目前的版本connect許可權
select grantee, privilege from dba_sys_privs
where grantee = 'CONNECT';
2. resource role(資源角色)
更可靠和正式的資料庫使用者可以授予resource role。resource提供給使用者另外的許可權以建立他們自己的表、序列、過程(procedure)、觸發器(trigger)、索引(index)和簇(cluster)。
select grantee, privilege from dba_sys_privs
where grantee = 'RESOURCE';
3. dba role(資料庫管理員角色)
dba role擁有所有的系統許可權----包括無限制的空間限額和給其他使用者授予各種許可權的能力。system由dba使用者擁有。下面介紹一些dba經常使用的典型許可權。
select grantee, privilege from dba_sys_privs
where grantee = 'DBA';
(1)grant(授權)命令
下面對user01使用者授權,命令如下:
grant connect, resource to user01;
(2)revoke(撤消)許可權
已授與權限可以撤消。例如撤消(1)中的授權,命令如下:
revoke connect, resource from user01;
一個具有dba角色的使用者可以撤消任何別的使用者甚至別的dba的connect、resource 和dba的其他許可權。當然,這樣是很危險的,因此,除非真正需要,dba許可權不應隨便授予那些不是很重要的一般使用者。 撤消一個使用者的所有許可權,並不意味著從oracle中刪除了這個使用者, 也不會破壞使用者建立的任何錶;只是簡單禁止其對這些表的訪問。其他要訪問這些表的使用者可以象以前那樣地訪問這些表。
二、建立角色
除了前面講到的三種系統角色----connect、resource和dba,使用者還可以在oracle建立自己的role。使用者建立的role可以由表或系統許可權或兩者的組合構成。為了建立role,使用者必須具有create role系統許可權。下面給出一個create role命令的執行個體:
create role student;
這條命令建立了一個名為student的role。
一旦建立了一個role,使用者就可以給他授權。給role授權的grant命令的文法與對對使用者的文法相同。在給role授權時,在grant命令的to子句中要使用role的名稱,如下所示:
grant select on class to student;
現在,擁有student 角色的所有使用者都具有對class 表的select許可權。
三、刪除角色
要刪除角色,可以使用drop role命令,如下所示:
drop role student;
指定的role連同與之相關的許可權將從資料庫中全部刪除。
Oracle收集使用者的許可權
Oracle許可權總結
Oracle查詢指定使用者有許可權的所有表
Oracle 使用者、角色許可權管理上的幾個誤區
關於Oracle Data Guard的角色切換
Oracle 建立使用者、角色、授權、建資料表空間