17.2.3 撤销权限

撤销权限也叫收回权限,也就是删除用户的系统权限或者对象权限。使用企业管理器删除用户的系统权限或者对象权限非常简单,只是在添加系统权限或对象权限时,选择把当前用户的权限移除就可以,如图17.13所示,把所选权限列表框中的ALTER权限去除,只需要选中该权限,然后单击【移去】按钮即可完成。

撤销权限在SQLPlus中的语句就和授予权限有很大差别了,这里重点讲解如何在SQLPlus中撤销系统权限和对象权限。

1.撤销系统权限

撤销系统权限的前提是当前的用户已经存在要撤销的系统权限,另外,撤销权限的操作只有数据库管理员才可以操作。具体语法如下:


REVOKE system_privilege

FROM user|role


【示例13】撤销USER1的系统权限

利用上面的语法,完成撤销USER1的create session权限。具体代码如下:


REVOKE create session FROM USER1


2.撤销对象权限

撤销对象权限也使用REVOKE关键字完成。具体语法如下:


REVOKE object_privilege|ALL

ON schema.object

FROM user|role

[CASCADE CONTRAINTS]


这里需要说明的就是CASCADE CONTRAINTS选项,它表示该用户授予其他用户的权限也一并撤销。

【示例14】撤销用户USER1的对象权限

利用上面的语法,完成撤销用户USER1的DELETE权限。具体代码如下:


REVOKE DELETE ON AA FROM USER1;


说明 在撤销用户权限时,撤销系统权限与撤销对象权限是不同的。如果撤销用户的系统权限,那么该用户授予其他用户的系统权限仍然存在;而撤销了用户的对象权限后,用户授予其他用户的对象权限也同时被撤销了。