oracle的許可權管理的總結

zhangshengdong發表於2011-11-18
Oracle的許可權有三個:
Object privileges  物件許可權
Role privileges    角色許可權
System privileges  系統許可權
一般來說的,物件許可權,是針對一個使用者對某些表,檢視,函式,儲存過程的訪問許可權
grant select, insert, update, delete on test_table to test_user;賦予使用者test_user對錶test_table增刪改查許可權
grant execute on F_zsd_test to test_user;
grant execute on PRO_zsd_test to test_user;
賦予使用者test_user對函式和儲存過程的執行許可權
grant select, insert, update, delete on VIEW_P_test to test_user;對檢視VIEW_P_test增刪改查許可權
角色許可權,最基礎的是connect與resource的許可權
CONNECT角色:
--是授予終端使用者的典型權利,最基本的
ALTER  SESSION          --修改會話
CREATE  CLUSTER         --建立聚簇
CREATE  DATABASE LINK   --建立資料庫連結
CREATE  SEQUENCE        --建立序列
CREATE  SESSION       --建立會話
CREATE  SYNONYM        --建立同義詞
CREATE  VIEW          --建立檢視
RESOURCE 角色: --是授予開發人員的
CREATE  CLUSTER    --建立聚簇
CREATE  PROCEDURE   --建立過程
CREATE  SEQUENCE    --建立序列
CREATE  TABLE       --建表
CREATE  TRIGGER     --建立觸發器
CREATE  TYPE        --建立型別
從dba_sys_privs裡可以查到(注意這裡必須以DBA角色登入):
select * from dba_sys_privs t where t.grantee='RESOURCE' order by priilege;可以檢視resource角色的許可權
select * from dba_sys_privs t where t.grantee='CONNECT' order by priilege;可以檢視connect角色的許可權
所以,一般在企業中,對一般使用者,只會賦予connect的許可權,讓他只有一些看,和連結資料庫的操作。擁有自己的會話
                    對開發人員,就會connect和resource都會賦予,因為,給予開發人員可以create。
                   
系統許可權,會對所有的物件進行限制(例如,儲存過程,表,簇,使用者,序列等等)
grant create any cluster   to test;
grant create any index     to test;
grant create any procedure to test;
grant create any role      to test;
grant create rollback segment to test;
grant create any sequence  to test;
grant create any synonym   to test;
......
可以檢視相關係統許可權列表
使用場景:
當你配置了一個生產庫,要一個使用者test的時候,這個使用者只是只讀使用者,那麼
就一般會給他一個select any table的系統許可權
grant select any table to test;就是賦予使用者test查詢任何表;
以上為個人筆記,學習用

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26446098/viewspace-711590/,如需轉載,請註明出處,否則將追究法律責任。

相關文章