Oracle撤销权限

Oracle撤销权限的概念就是对用户或角色的权限的回收,也就是对用户删除某个系统权限或者删除某个对象的操作权限。


Oracle撤销系统权限

Oracle撤销系统权限只有具有DBA权限的用户才能进行撤销(revoke)操作。撤销系统权限的语法如下:

revoke system_privilege from user|role;

语法解析:

1、system_privilege:指的是撤销的系统权限的名称,撤销系统权限时,必须是该用户具有了该系统权限,假如不存在系统权限是不能进行撤销的。

2、user|role:指的是撤销权限的对象是用户还是角色。


例1、利用revoke命令撤销用户teacher的create session权限,代码如下:

revoke create session from teacher;

然后通过数据字典dba_sys_privs可以查询一下TEACHER的系统权限,发现create session已经不存在了。

Oracle撤销权限


Oracle撤销对象权限

Oracle撤销对象权限也是利用revoke命令进行的,语法结构如下:

revoke obj_privilege|all 
on object 
from  user|role;

语法解析:

1、obj_privilege|all:指的是对应的数据库对象的操作权限,all表示把所有的操作权限都撤销。


例2、利用revoke命令撤销用户teacher对学生信息表(stuinfo)的delete(删除)的操作权限,代码如下:

revoke delete  on student.stuinfo from  teacher ;

然后,通过数据字典dba_tab_privs查询一下stuinfo的操作权限,发现已经删除,只剩下查询权限。

Oracle撤销权限

注意:在进行撤销权限时,系统权限的撤销和对象权限的撤销是不一样的,通过上一章Oracle权限授权管理中知道,系统权限的授权不是级联的,对象权限的授权是级联的。在撤销权限时也是一样的,在撤销对象权限时,那么该用户授予给其它用户的对象权限也要跟着收回。而撤销系统权限就不会收回其它用户的权限。