REVOKE
功能描述
将系统权限或角色从受权者回收。
注意事项
- 如果是回收系统权限,执行REVOKE操作的用户需要满足如下条件之一:
- 已经授予要被收回的系统权限,且授权时携带WITH ADMIN OPTION属性。
- 已经被授予GRANT ANY PRIVILEGE系统权限。
- 如果是回收角色,执行该REVOKE操作的用户需要满足如下条件之一:
- 已经被授予该角色,且授权时携带WITH ADMIN OPTION属性。
- 已经被授予GRANT ANY ROLE系统权限。
- 是被回收角色的创建者。
- 如果从受权者上回收权限时,受权者并没有被授权要回收的权限,会提示错误信息。
- 不允许回收DBA角色的权限。DBA角色的初始权限在创建数据库时已经确定。后续可以给DBA角色授予权限,但是不允许回收权限。
语法格式
- 回收系统权限。
REVOKE { ALL [ PRIVILEGES ] |{ system_privilege_name | role_name } [ , ... ] } FROM revokee
revokee 子句:
{ user_name | role_name } [ , ... ]
- 回收对象权限
REVOKE { ALL [ PRIVILEGES ] | { object_privilege_name [, ...] ON [schema_name.]object_name } } FROM revokee
object_privilege_name子句:
{ SELECT | UPDATE | DELETE | INSERT | ALTER | INDEX | EXECUTE | READ | REFERENCES } [, ... ]
参数说明
- system_privilege_name
系统权限名。
当前支持的系统权限,请参考表1。
- role_name
角色名。参考ROLE语句说明,将角色从用户或者其他角色上回收时,表示将revokee中属于role的权限删除。
- ALL [ PRIVILEGES ]
表示所有系统权限,PRIVILEGES可省略。
- object_privilege_name
对象权限名。
- ALL [ PRIVILEGES ]
表示所有对象权限,PRIVILEGES可省略。
- [ schema_name. ]
用户名。不指定时默认是当前登录用户。
- revokee
受权者,权限被回收的用户或者角色,一次可以指定多个用户或者角色,但不能超过63个。
- user_name
权限被回收的用户名。
示例
- 将系统权限从用户joe收回。
--删除用户joe。 DROP USER joe CASCADE;
--创建用户joe。 CREATE USER joe IDENTIFIED BY database_123;
--将系统权限CREATE SESSION、CREATE TABLE、CREATE ANY INDEX、CREATE USER授予用户joe。 GRANT CREATE SESSION, CREATE TABLE, CREATE ANY INDEX, CREATE USER TO joe;
--从受权用户joe上回收系统权限CREATE USER。 REVOKE CREATE USER FROM joe;
- 将角色从用户jim收回。
--删除角色testers。 DROP ROLE testers;
--创建角色testers。 CREATE ROLE testers;
--删除用户jim。 DROP USER jim CASCADE;
--创建用户jim,密码是database_123。 CREATE USER jim IDENTIFIED BY database_123;
--删除用户glow。 DROP USER glow CASCADE;
--创建用户glow。 CREATE USER glow IDENTIFIED BY database_123;
--将系统权限CREATE SESSION、CREATE USER、CREATE ROLE、CREATE TABLE、CREATE ANY TABLE、CREATE ANY INDEX、DROP USER、DROP ANY ROLE、DROP ANY TABLE、DROP ANY INDEX授予角色testers。 GRANT CREATE SESSION, CREATE USER, CREATE ROLE, CREATE TABLE, CREATE ANY TABLE, CREATE ANY INDEX, DROP USER, DROP ANY ROLE, DROP ANY TABLE, DROP ANY INDEX TO testers;
--将角色testers授予用户jim和用户glow。 GRANT testers TO jim, glow;
--从受权用户jim上回收角色testers。 REVOKE testers FROM jim;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」关注作者【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。评论
- 将角色从用户jim收回。
- system_privilege_name
- 回收对象权限