1. 程式人生 > >ORACLE資料庫的使用者許可權和角色許可權控制

ORACLE資料庫的使用者許可權和角色許可權控制

這篇文章講述的是ORACLE資料庫的使用者許可權控制,如有錯誤或者不當之處還希望各位大神批評指正。

使用者許可權是什麼?

在資料庫中,使用者可以對資料庫進行的操作叫做使用者的許可權。

如何建立一個使用者?

  • 建立一個名為‘cmc’的使用者
create user cmc
identified by cmc ;

系統許可權

  1. CREATE SESSION 建立會話
  2. CREATE SEQUENCE 建立序列
  3. CREATE SYNONYM 建立同名物件
  4. CREATE TABLE 在使用者模式中建立表
  5. CREATE ANY TABLE 在任何模式中建立表
  6. DROP TABLE 在使用者模式中刪除表
  7. DROP ANY TABLE 在任何模式中刪除表
  8. CREATE PROCEDURE 建立儲存過程
  9. EXECUTE ANY PROCEDURE 執行任何模式的儲存過程
  10. CREATE USER 建立使用者
  11. DROP USER 刪除使用者
  12. CREATE VIEW 建立檢視

物件的許可權

  1. 修改(alter)
  2. 刪除(delete)
  3. 執行(execute)
  4. 索引(index)
  5. 插入(insert)
  6. 關聯(references)
  7. 選擇(select)

兩個系統常用的角色

  1. connect角色:僅具有建立session的許可權
  2. resource角色:僅具有建立CLUSTER,INDEXTYPE,OPERATOR,PROCEDEURE,SEQUENCE,TABLE,TRIGGER,TYPE的許可權

如何給使用者賦予許可權?

  • 給‘cmc’使用者授與連線,建立表,建立檢視,建立索引的許可權
grant connect,create table,create view ,create any index to cmc ;
  • 給‘cmc’使用者查詢SCOTT使用者中表t_student的許可權,並且讓cmc使用者可以將許可權賦予別人
grant select
on scott.t_student 
to cmc
with grant option

收回使用者許可權

  • 刪除使用者‘cmc’的建立檢視的權力
revoke create view from cmc ;

刪除使用者

-刪除‘cmc’使用者

drop user username  cascade

使用者角色是什麼?

在資料庫中,為便於對使用者及許可權進行管理,可以將一組具有相同許可權的使用者組織在一起,這一組具有相同許可權的使用者就稱為角色(Role)。

建立一個角色

  • 建立角色manager,賦予許可權連線、新建使用者、刪除使用者、修改使用者。
create role manager ;
grant connect , create user , alter user ,drop user to manager ;

給一個使用者賦予角色

  • 將manager使用者賦予給使用者cmc
grant manager to cmc ;

刪除一個使用者的角色

revoke role manager from cmc 

刪除角色

drop role manager

如何查詢使用者和許可權?

有一下幾個重要的檢視,方便查詢使用者及許可權

  1. ROLE_SYS_PRIVS 角色擁有的系統許可權
  2. ROLE_TAB_PRIVS 角色擁有的兌現許可權
  3. USER_ROLE_PRIVS 使用者擁有的角色
  4. USER_TAB_PRIVS_MADE 使用者分配的關於表物件的許可權
  5. USER_TAB_PRIVS_RECD 使用者擁有的關於表物件的許可權
  6. USER_COL_PRIVS_MADE 使用者分配的關於列物件的許可權
  7. USER_COL_PRIVS_RECD 使用者擁有的關於列物件的許可權
  8. USER_SYS_PRIVS 使用者擁有的系統許可權

    • 查詢使用者‘cmc’擁有的系統許可權
--cmc使用者登入下

select * from user_sys_privs
  • 查詢‘cmc’表物件許可權
select * from USER_TAB_PRIVS_RECD