1.查詢 Oracle 所有的角色
select * from dba_roles;
2.介紹常用的 預定角色 connect ,resource,dba
1.connect 具有一般開發人員的大部分許可權,建立一個使用者多半情況下,賦予 connect 和 resource 角色 就夠了。
- connect角色 所擁有的許可權有 :
- alter session 修改會話
- create cluster 建立簇
- create database link
- create session
- create table
- create view
- create sequence
2.resources 角色用開發人員選用的其他許可權,比如建立預存程序,觸發器,resource 角色隱含了 unlimited tablespace 系統許可權 無限資料表空間許可權。
- create cluster
- create indextype
- create table
- create type
- create proecdure
- create trigger
3.dba角色具有 所有的系統許可權 以及 with admin option選項,預設的dba使用者為 sys和system 他們可以將任何系統許可權授予其他使用者,但是 dba角色不具備 sysdba和sysoper的特權(啟動和關閉資料庫)
3.舉例:授予 connect resource dba 系統角色
- grant connect to luob 【with admin option】 //授予 串連許可權 是否遺傳下去
- grant resource,dba to luob //授予 資源 和 dba 角色
4.收回角色
revoke connect,resource,dba from luob //回收 串連 資源 dba 角色
5.自訂 角色 --一般是dba來建立,別的使用者需要 create role 的系統許可權(建立角色時候可以指定驗證方式(不驗證,資料庫驗證等)
- create role 角色名稱 not identified;//不需要驗證的
- alter role myrole identified by m123;//將上面定義的角色 修改成需要資料庫驗證的 角色
- create role 角色名稱 identified by r111;//定義需要驗證的 角色 myrole
6.給 自訂角色 授予 系統許可權
- grant create session to 角色名稱 【with admin option】 //給串連許可權給 角色
7.給自定 角色 授予 對象許可權
- grant select on scott.emp from 角色名稱 --都是 system 使用者登入
- grant update on scott.emp from 角色名稱 -- 如果用 scott 就沒有方案名
- grant delete on scott.emp from 角色名稱
- grant all on emp from 角色
8.將自訂角色 授予 使用者
- grant 角色名稱 to 使用者名稱 【with admin option】
9.刪除某個使用者的角色
- revoke 角色名稱 from 使用者名稱
10.刪除 自訂 角色
- drop role 角色名稱 //如果角色被刪除了, 擁有這個角色的人都沒有角色對應的許可權了
11.查看目前使用者擁有的 角色
- select * from user_role_privs