创新互联OceanBase教程:OceanBaseREVOKE
描述
该语句用于系统管理员撤销 User 的某些权限。

创新互联长期为成百上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为云县企业提供专业的网站建设、成都网站建设,云县网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。
使用说明如下:
- 用户必须拥有被撤销的权限(例如,user1 要撤销 user2 对表 t1 的 SELECT 权限,则 user1 必须拥有表 t1 的 SELECT 的权限),并且拥有 GRANT OPTION 权限。
- 撤销 ALL PRIVILEGES 和 GRANT OPTION 权限时,当前用户必须拥有全局 GRANT OPTION 权限,或者对权限表的 UPDATE 及 DELETE 权限。
- 当权限没有 GRANT OPTION 时,撤销操作不会级联。例如,用户 user1 给 user2 授予了某些权限,撤回 user1 的权限不会同时也撤回 user2 的相应权限。当拥有 GRANT OPTION 时,撤销操作会级联。
格式
 
/*撤销对象权限*/
REVOKE obj_privileges
  ON obj_clause FROM user_list;
user_list:
  user [, user ...]
obj_privileges:
  obj_privilege [, obj_privilege ...]
  
obj_privilege:
    ALTER
  | AUDIT
  | COMMENT
  | DELETE
  | GRANT
  | INDEX
  | INSERT
  | LOCK
  | RENAME
  | SELECT 
  | UPDATE
  | REFERENCES
  | EXECUTE
  | CREATE
  | FLASHBACK
  | READ
  | WRITE
  | DEBUG
obj_clause:
  relation_name
  | relation_name '.' relation_name
  | DIRECTORY relation_name
relation_name:
  STR_VALUE
  
/*撤销系统权限*/
REVOKE {system_privilege_list | ALL PRIVILEGES}
  FROM user_list;
REVOKE ALL [PRIVILEGES], GRANT_OPTION FROM user_list;
system_privilege_list:
  system_privilege [, system_privilege ...]
system_privilege:
  CREATE SESSION
  | EXEMPT REDACTION POLICY
  | SYSDBA
  | SYSOPER
  | SYSBACKUP
  | CREATE TABLE
  | CREATE ANY TABLE
  | ALTER ANY TABLE
  | BACKUP ANY TABLE
  | DROP ANY TABLE
  | LOCK ANY TABLE
  | COMMENT ANY TABLE
  | SELECT ANY TABLE
  | INSERT ANY TABLE
  | UPDATE ANY TABLE
  | DELETE ANY TABLE
  | FLASHBACK ANY TABLE
  | CREATE ROLE
  | DROP ANY ROLE
  | GRANT ANY ROLE
  | ALTER ANY ROLE
  | AUDIT ANY
  | GRANT ANY PRIVILEGE
  | GRANT ANY OBJECT PRIVILEGE
  | CREATE ANY INDEX
  | ALTER ANY INDEX
  | DROP ANY INDEX
  | CREATE ANY VIEW
  | DROP ANY VIEW
  | CREATE VIEW
  | SELECT ANY DICTIONARY
  | CREATE PROCEDURE
  | CREATE ANY PROCEDURE
  | ALTER ANY PROCEDURE
  | DROP ANY PROCEDURE
  | EXECUTE ANY PROCEDURE
  | CREATE SYNONYM
  | CREATE ANY SYNONYM
  | DROP ANY SYNONYM
  | CREATE PUBLIC SYNONYM
  | DROP PUBLIC SYNONYM
  | CREATE SEQUENCE
  | CREATE ANY SEQUENCE
  | ALTER ANY SEQUENCE
  | DROP ANY SEQUENCE
  | SELECT ANY SEQUENCE
  | CREATE TRIGGER
  | CREATE ANY TRIGGER
  | ALTER ANY TRIGGER
  | DROP ANY TRIGGER
  | CREATE PROFILE
  | ALTER PROFILE
  | DROP PROFILE
  | CREATE USER
  | ALTER USER
  | DROP USER
  | CREATE TYPE
  | CREATE ANY TYPE
  | ALTER ANY TYPE
  | DROP ANY TYPE
  | EXECUTE ANY TYPE
  | UNDER ANY TYPE
  | PURGE DBA_RECYCLEBIN
  | CREATE ANY OUTLINE
  | ALTER ANY OUTLINE
  | DROP ANY OUTLINE
  | SYSKM
  | CREATE TABLESPACE
  | ALTER TABLESPACE
  | DROP TABLESPACE
  | SHOW PROCESS
  | ALTER SYSTEM
  | CREATE DATABASE LINK
  | CREATE PUBLIC DATABASE LINK
  | DROP DATABASE LINK
  | ALTER SESSION
  | ALTER DATABASE
/*撤销角色*/
REVOKE role_list FROM user;
role_list:
role [, role ...]参数解释
| 参数 | 描述 | 
|---|---|
| obj_privileges | 指定撤销的对象权限类型。具体的权限类型及其说明请参见下方权限类型说明表。 同时撤销多个权限时,权限类型用“,”隔开。 | 
| system_privilege | 指定撤销的系统权限类型。 同时撤销多个权限时,权限类型用“,”隔开。 | 
| obj_clause | 指定撤销权限的层级,relation_name指定具体对象的名称。权限可以分为以下几个层级: 
 | 
可以撤销的权限类型如下表所示。
权限类型说明表
| 权限 | 说明 | 
|---|---|
| ALL PRIVILEGES | 除GRANT OPTION以外所有权限。 | 
| ALTER | ALTER TABLE的权限。 | 
| CREATE | CREATE TABLE的权限。 | 
| DELETE | DELETE的权限。 | 
| DROP | DROP的权限。 | 
| GRANT OPTION | GRANT OPTION的权限。 | 
| INSERT | INSERT的权限。 | 
| UPDATE | UPDATE的权限。 | 
| SELECT | SELECT的权限。 | 
| INDEX | CREATE INDEX, DROP INDEX的权限 | 
| SHOW VIEW | SHOW CREATE VIEW权限。 | 
| SHOW DATABASES | 全局 SHOW DATABASES的权限。 | 
| SUPER | SET GLOBAL修改全局系统参数的权限。 | 
| REFERENCES | 创建指向表的约束的权限。 | 
| EXECUTE | 执行预处理程序的权限。 | 
| FLASHBACK | FLASHBACK的权限。 | 
| READ | READ的权限。 | 
| WRITE | WRITE的权限。 | 
| CREATE SESSION | 连接到数据库的权限。 | 
| EXEMPT REDACTION POLICY | 绕过任意现有 REDACTION POLICY 并查看数据的权限。 | 
| SYSDBA | SYSDBA的权限。 | 
| SYSOPER | SYSOPER的权限。 | 
| SYSBACKUP | SYSBACKUP的权限。 | 
| CREATE TABLE | 在指定用户SCHEMA内创建表的权限。 | 
| CREATE ANY TABLE | 在除SYS外所有用户SCHEMA内创建表的权限。 | 
| ALTER ANY TABLE | 在除SYS外所有用户SCHEMA内修改表的权限。 | 
| BACKUP ANY TABLE | 在除SYS外所有用户SCHEMA内创建表的权限。 | 
| DROP ANY TABLE | 在除SYS外所有用户SCHEMA内备份表的权限。 | 
| LOCK ANY TABLE | 在除SYS外所有用户SCHEMA内锁定表的权限。 | 
| COMMENT ANY TABLE | 在除SYS外所有用户SCHEMA内评论表的权限。 | 
| SELECT ANY TABLE | 在除SYS外所有用户SCHEMA内查看表的权限。 | 
| INSERT ANY TABLE | 在除SYS外所有用户SCHEMA内的表插入行的权限。 | 
| UPDATE ANY TABLE | 在除SYS外所有用户SCHEMA内的表更新行的权限。 | 
| DELETE ANY TABLE | 在除SYS外所有用户SCHEMA内删除表的权限。 | 
| FLASHBACK ANY TABLE | 在除SYS外所有用户SCHEMA内FLASHBACK表的权限。 | 
| CREATE ROLE | 创建角色的权限。 | 
| DROP ANY ROLE | 删除任意角色的权限。 | 
| GRANT ANY ROLE | 授予任意角色的权限。 | 
| ALTER ANY ROLE | 修改任意角色的权限。 | 
| AUDIT ANY | 在除SYS外所有用户SCHEMA内修改对象的权限。 | 
| GRANT ANY PRIVILEGE | 授予任意系统权限的权限。 | 
| GRANT ANY OBJECT PRIVILEGE | 授予任意对象权限的权限。 | 
| CREATE ANY INDEX | 在除SYS外所有用户SCHEMA内创建索引的权限。 | 
| ALTER ANY INDEX | 在除SYS外所有用户SCHEMA内修改索引的权限。 | 
| DROP ANY INDEX | 在除SYS外所有用户SCHEMA内删除索引的权限。 | 
| CREATE ANY VIEW | 在除SYS外所有用户SCHEMA内创建视图的权限。 | 
| DROP ANY VIEW | 在除SYS外所有用户SCHEMA内删除索引的权限。 | 
| CREATE VIEW | 在指定用户SCHEMA内创建视图的权限。 | 
| SELECT ANY DICTIONARY | 在指定用户SCHEMA内查询DICTIONARY的权限。 | 
| CREATE PROCEDURE | 在指定用户SCHEMA内创建PROCEDURE的权限。 | 
| CREATE ANY PROCEDURE | 在除SYS外所有用户SCHEMA内创建PROCEDURE的权限。 | 
| ALTER ANY PROCEDURE | 在除SYS外所有用户SCHEMA内修改PROCEDURE的权限。 | 
| DROP ANY PROCEDURE | 在除SYS外所有用户SCHEMA内删除PROCEDURE的权限。 | 
| EXECUTE ANY PROCEDURE | 在除SYS外所有用户SCHEMA内执行PROCEDURE的权限。 | 
| CREATE SYNONYM | 在指定用户SCHEMA内创建SYNONYM的权限。 | 
| CREATE ANY SYNONYM | 在除SYS外所有用户SCHEMA内创建SYNONYM的权限。 | 
| DROP ANY SYNONYM | 在除SYS外所有用户SCHEMA内删除SYNONYM的权限。 | 
| CREATE PUBLIC SYNONYM | 创建公共SYNONYM的权限。 | 
| DROP PUBLIC SYNONYM | 删除公共SYNONYM的权限。 | 
| CREATE SEQUENCE | 在指定用户SCHEMA内创建SEQUENCE的权限。 | 
| CREATE ANY SEQUENCE | 在除SYS外所有用户SCHEMA内创建SEQUENCE的权限。 | 
| ALTER ANY SEQUENCE | 在除SYS外所有用户SCHEMA内修改SEQUENCE的权限。 | 
| DROP ANY SEQUENCE | 在除SYS外所有用户SCHEMA内删除SEQUENCE的权限。 | 
| SELECT ANY SEQUENCE | 在除SYS外所有用户SCHEMA内查询SEQUENCE的权限。 | 
| CREATE TRIGGER | 在指定用户SCHEMA内创建TRIGGER的权限。 | 
| CREATE ANY TRIGGER | 在除SYS外所有用户SCHEMA内创建TRIGGER的权限。 | 
| ALTER ANY TRIGGER | 在除SYS外所有用户SCHEMA内修改TRIGGER的权限。 | 
| DROP ANY TRIGGER | 在除SYS外所有用户SCHEMA内删除TRIGGER的权限。 | 
| CREATE PROFILE | 创建PROFILE的权限。 | 
| ALTER PROFILE | 修改PROFILE的权限。 | 
| DROP PROFILE | 删除PROFILE的权限。 | 
| CREATE USER | 创建用户的权限。 | 
| ALTER USER | 修改用户的权限。 | 
| DROP USER | 删除用户的权限。 | 
| CREATE TYPE | 在指定用户SCHEMA内创建TYPE的权限。 | 
| CREATE ANY TYPE | 在除SYS外所有用户SCHEMA内创建TYPE的权限。 | 
| ALTER ANY TYPE | 在除SYS外所有用户SCHEMA内修改TYPE的权限。 | 
| DROP ANY TYPE | 在除SYS外所有用户SCHEMA内删除TYPE的权限。 | 
| EXECUTE ANY TYPE | 在除SYS外所有用户SCHEMA内执行TYPE的权限。 | 
| UNDER ANY TYPE | 在除SYS外所有用户SCHEMA内TYPE的基础上创建SUBTYPE的权限。 | 
| PURGE DBA_RECYCLEBIN | 从系统回收站中删除所有对象的权限。 | 
| CREATE ANY OUTLINE | 在除SYS外所有用户SCHEMA内创建OUTLINE的权限。 | 
| ALTER ANY OUTLINE | 在除SYS外所有用户SCHEMA内修改OUTLINE的权限。 | 
| DROP ANY OUTLINE | 在除SYS外所有用户SCHEMA内删除OUTLINE的权限。 | 
| SYSKM | SYSKM的权限。 | 
| CREATE TABLESPACE | 创建表空间的权限。 | 
| ALTER TABLESPACE | 修改表空间的权限。 | 
| DROP TABLESPACE | 删除表空间的权限。 | 
| ALTER SYSTEM | ALTER SYSTEM的权限 | 
| CREATE DATABASE LINK | 在指定用户SCHEMA内创建DATABASE LINK的权限。 | 
| CREATE PUBLIC DATABASE LINK | 创建PUBLIC DATABASE LINK的权限。 | 
| DROP DATABASE LINK | 在指定用户SCHEMA内删除DATABASE LINK的权限。 | 
| ALTER SESSION | 修改SESSION的权限。 | 
| ALTER DATABASE | 修改DATABASE的权限。 | 
示例
执行以下命令撤销用户 obsqluser 的所有权限。
 
obclient>REVOKE ALL PRIVILEGES FROM sqluser;
Query OK, 0 rows affected (0.10 sec)
分享名称:创新互联OceanBase教程:OceanBaseREVOKE
URL分享:http://jxruijie.cn/article/cojschh.html

 
                