基礎知識6——建立和管理角色
建立和管理角色
直接授予使用者許可權,管控安全當然可以,但是使用者較少你還能玩得轉,如果使用者多呢?需要的許可權種類多,涉及到的表多,咋整?操作幾萬次?那你還幹別的不了?
角色:一組系統許可權或物件許可權,可作為一個單元來授予或撤銷,可以在會話中臨時啟用或禁用已經授予的許可權.
角色不是模式物件,不屬於任何人,與使用者共享同一個名稱空間:建立的角色不能與已有使用者同名,也不能與已有角色同名.
CREATE ROLE rolename;
然後使用普通語法為角色授權,根據需要增加with admin或with grant option
預先定義的角色
oracle有至少50個預先定義的角色,應該熟悉的如下:
connect --10g後僅有create session許可權.
resource --可建立資料物件(如表)和過程物件(如PL/SQL過程),還包括unlimited tablespace許可權
DBA --有大多數系統許可權,及多個物件許可權和角色,幾乎可以管理資料庫的所有方面,除了啟動和關閉
select_catalog_role --有針對資料字典物件的2000多個物件許可權,但沒有系統許可權或針對使用者資料的許可權.
schedule_admin --有用於管理排程服務的排程程式作業所需的系統許可權
還有個預定義的角色public,此角色始終授予每個使用者,如果授予public某些許可權,這些許可權將授予所有的使用者.
比如讓所有使用者有權查詢hr.regions表:
grant select on hr.regions to public;
顯示某使用者被授予了什麼角色:
select * from dba_role_privs
where grantee='SCOTT';
GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE
------------------------------------------------------------------------------------------------------
SCOTT RESOURCE NO YES
SCOTT CONNECT NO YES
scott沒有此角色上的管理許可權,因此不能將其傳遞給其它人.
練習,建立角色並授予使用者
create role usr_role;
create role mgr_role;
為這些角色授予一些許可權,並將usr_role授予mgr_role
grant create session to usr_role;
grant select on sales.t1 to usr_role;
grant usr_role to mgr_role with admin option;
grant all on sales.t1 to mgr_role;
以SYSTEM身份將mgr_role授予webapp
grant mgr_role to webapp;
以使用者webapp登入,將usr_role授予accounts
grant usr_role to accounts;
直接授予使用者許可權,管控安全當然可以,但是使用者較少你還能玩得轉,如果使用者多呢?需要的許可權種類多,涉及到的表多,咋整?操作幾萬次?那你還幹別的不了?
角色:一組系統許可權或物件許可權,可作為一個單元來授予或撤銷,可以在會話中臨時啟用或禁用已經授予的許可權.
角色不是模式物件,不屬於任何人,與使用者共享同一個名稱空間:建立的角色不能與已有使用者同名,也不能與已有角色同名.
CREATE ROLE rolename;
然後使用普通語法為角色授權,根據需要增加with admin或with grant option
預先定義的角色
oracle有至少50個預先定義的角色,應該熟悉的如下:
connect --10g後僅有create session許可權.
resource --可建立資料物件(如表)和過程物件(如PL/SQL過程),還包括unlimited tablespace許可權
DBA --有大多數系統許可權,及多個物件許可權和角色,幾乎可以管理資料庫的所有方面,除了啟動和關閉
select_catalog_role --有針對資料字典物件的2000多個物件許可權,但沒有系統許可權或針對使用者資料的許可權.
schedule_admin --有用於管理排程服務的排程程式作業所需的系統許可權
還有個預定義的角色public,此角色始終授予每個使用者,如果授予public某些許可權,這些許可權將授予所有的使用者.
比如讓所有使用者有權查詢hr.regions表:
grant select on hr.regions to public;
顯示某使用者被授予了什麼角色:
select * from dba_role_privs
where grantee='SCOTT';
GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE
------------------------------------------------------------------------------------------------------
SCOTT RESOURCE NO YES
SCOTT CONNECT NO YES
scott沒有此角色上的管理許可權,因此不能將其傳遞給其它人.
練習,建立角色並授予使用者
create role usr_role;
create role mgr_role;
為這些角色授予一些許可權,並將usr_role授予mgr_role
grant create session to usr_role;
grant select on sales.t1 to usr_role;
grant usr_role to mgr_role with admin option;
grant all on sales.t1 to mgr_role;
以SYSTEM身份將mgr_role授予webapp
grant mgr_role to webapp;
以使用者webapp登入,將usr_role授予accounts
grant usr_role to accounts;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25025926/viewspace-1068118/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL基礎知識(6)MySql
- es6基礎知識
- corejava基礎知識(6)-檢視Java
- 遊戲基礎知識:角色“退場”的設計遊戲
- 遊戲基礎知識——“寵物”角色的設計遊戲
- 遊戲基礎知識——話癆角色的設計遊戲
- 遊戲基礎知識——“斥候”角色的設計手法遊戲
- IPv6基礎知識詳解
- GMAC和PHY基礎知識Mac
- 遊戲基礎知識——“研究者”角色的設計遊戲
- 遊戲基礎知識——角色“女子力”的表現手法遊戲
- 遊戲基礎知識——“俘虜”角色的設計手法遊戲
- 6. Oracle開發和應用——6.1. 基礎知識Oracle
- Go語言:包管理基礎知識Go
- HTML基礎知識6-表格標籤HTML
- 遊戲基礎知識——“復仇者”角色的設計手法遊戲
- 遊戲基礎知識——“學徒”角色的設計特點遊戲
- 前端-html和css基礎知識前端HTMLCSS
- 基礎知識
- Linux磁碟管理基礎知識全彙總Linux
- FreeRTOS-00-基礎知識+任務建立刪除
- SQLAlchemy 基礎知識 - autoflush 和 autocommit(轉)SQLMIT
- javaweb-ajax和json基礎知識JavaWebJSON
- java基礎知識Java
- 1、基礎知識
- 前端基礎知識前端
- Vue基礎知識Vue
- Camera基礎知識
- Hadoop基礎知識Hadoop
- python基礎知識Python
- BGP基礎知識
- Mybatis基礎知識MyBatis
- linux基礎知識Linux
- Kafka 基礎知識Kafka
- qml基礎知識
- python 基礎知識Python
- webpack基礎知識Web
- AI 基礎知識AI
- PRML 基礎知識