方法:1、利用“revoke system_privilege from user|role”命令取消系统权限;2、利用“revoke obj_privilege|allon object from user|role”命令取消对象权限。
本教程操作环境:Windows10系统、Oracle 11g版、Dell G3电脑。
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撤销对象权限也是利用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视频教程》
以上是oracle怎么取消权限的详细内容。更多信息请关注PHP中文网其他相关文章!