ORACLE資料庫的使用者許可權和角色許可權控制
阿新 • • 發佈:2019-02-06
這篇文章講述的是ORACLE資料庫的使用者許可權控制,如有錯誤或者不當之處還希望各位大神批評指正。
使用者許可權是什麼?
在資料庫中,使用者可以對資料庫進行的操作叫做使用者的許可權。
如何建立一個使用者?
- 建立一個名為‘cmc’的使用者
create user cmc
identified by cmc ;
系統許可權
- CREATE SESSION 建立會話
- CREATE SEQUENCE 建立序列
- CREATE SYNONYM 建立同名物件
- CREATE TABLE 在使用者模式中建立表
- CREATE ANY TABLE 在任何模式中建立表
- DROP TABLE 在使用者模式中刪除表
- DROP ANY TABLE 在任何模式中刪除表
- CREATE PROCEDURE 建立儲存過程
- EXECUTE ANY PROCEDURE 執行任何模式的儲存過程
- CREATE USER 建立使用者
- DROP USER 刪除使用者
- CREATE VIEW 建立檢視
物件的許可權
- 修改(alter)
- 刪除(delete)
- 執行(execute)
- 索引(index)
- 插入(insert)
- 關聯(references)
- 選擇(select)
兩個系統常用的角色
- connect角色:僅具有建立session的許可權
- 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
如何查詢使用者和許可權?
有一下幾個重要的檢視,方便查詢使用者及許可權
- ROLE_SYS_PRIVS 角色擁有的系統許可權
- ROLE_TAB_PRIVS 角色擁有的兌現許可權
- USER_ROLE_PRIVS 使用者擁有的角色
- USER_TAB_PRIVS_MADE 使用者分配的關於表物件的許可權
- USER_TAB_PRIVS_RECD 使用者擁有的關於表物件的許可權
- USER_COL_PRIVS_MADE 使用者分配的關於列物件的許可權
- USER_COL_PRIVS_RECD 使用者擁有的關於列物件的許可權
USER_SYS_PRIVS 使用者擁有的系統許可權
- 查詢使用者‘cmc’擁有的系統許可權
--cmc使用者登入下
select * from user_sys_privs
- 查詢‘cmc’表物件許可權
select * from USER_TAB_PRIVS_RECD