方法:1、利用“revoke system_privilege from user|role”命令取消系統(tǒng)權(quán)限;2、利用“revoke obj_privilege|allon Object from ?user|role”命令取消對(duì)象權(quán)限。
本教程操作環(huán)境:Windows10系統(tǒng)、oracle 11g版、Dell G3電腦。
oracle怎么取消權(quán)限
Oracle撤銷權(quán)限
Oracle撤銷權(quán)限的概念就是對(duì)用戶或角色的權(quán)限的回收,也就是對(duì)用戶刪除某個(gè)系統(tǒng)權(quán)限或者刪除某個(gè)對(duì)象的操作權(quán)限。
Oracle撤銷系統(tǒng)權(quán)限
Oracle撤銷系統(tǒng)權(quán)限只有具有dba權(quán)限的用戶才能進(jìn)行撤銷(revoke)操作。撤銷系統(tǒng)權(quán)限的語(yǔ)法如下:
revoke?system_privilege?from?user|role;
語(yǔ)法解析:
1、system_privilege:指的是撤銷的系統(tǒng)權(quán)限的名稱,撤銷系統(tǒng)權(quán)限時(shí),必須是該用戶具有了該系統(tǒng)權(quán)限,假如不存在系統(tǒng)權(quán)限是不能進(jìn)行撤銷的。
2、user|role:指的是撤銷權(quán)限的對(duì)象是用戶還是角色。
例1、利用revoke命令撤銷用戶teacher的create?Session權(quán)限,代碼如下:
revoke?create?session?from?teacher;
然后通過(guò)數(shù)據(jù)字典dba_sys_privs可以查詢一下TEACHER的系統(tǒng)權(quán)限,發(fā)現(xiàn)create?session已經(jīng)不存在了。
Oracle撤銷對(duì)象權(quán)限
Oracle撤銷對(duì)象權(quán)限也是利用revoke命令進(jìn)行的,語(yǔ)法結(jié)構(gòu)如下:
revoke?obj_privilege|all on?object from??user|role;
語(yǔ)法解析:
1、obj_privilege|all:指的是對(duì)應(yīng)的數(shù)據(jù)庫(kù)對(duì)象的操作權(quán)限,all表示把所有的操作權(quán)限都撤銷。
例2、利用revoke命令撤銷用戶teacher對(duì)學(xué)生信息表(stuinfo)的delete(刪除)的操作權(quán)限,代碼如下:
revoke?delete??on?student.stuinfo?from??teacher?;
然后,通過(guò)數(shù)據(jù)字典dba_tab_privs查詢一下stuinfo的操作權(quán)限,發(fā)現(xiàn)已經(jīng)刪除,只剩下查詢權(quán)限。
注意:在進(jìn)行撤銷權(quán)限時(shí),系統(tǒng)權(quán)限的撤銷和對(duì)象權(quán)限的撤銷是不一樣的,通過(guò)上一章Oracle權(quán)限授權(quán)管理中知道,系統(tǒng)權(quán)限的授權(quán)不是級(jí)聯(lián)的,對(duì)象權(quán)限的授權(quán)是級(jí)聯(lián)的。在撤銷權(quán)限時(shí)也是一樣的,在撤銷對(duì)象權(quán)限時(shí),那么該用戶授予給其它用戶的對(duì)象權(quán)限也要跟著收回。而撤銷系統(tǒng)權(quán)限就不會(huì)收回其它用戶的權(quán)限。
推薦教程:《Oracle視頻教程》