十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
该语句用于系统管理员授予 User 某些权限,包括对象权限,系统权限和角色。

说明
当授予对象权限时,当前用户必须是对象的所有者,或者拥有被授予的权限(例如,user1 把表 t1 的 SELECT 权限授予 user2,则 user1 必须拥有表 t1 的 SELECT 的权限),并且拥有 GRANT OPTION 权限,才能授予成功。
当授予系统权限和角色时,当前用户必须拥有被授予的权限或角色,并且拥有 GRANT OPTION 权限,才能授予成功。
用户授权后,该用户只有重新连接 OceanBase,权限才能生效。
  
/*授予对象权限*/
GRANT obj_with_col_priv_list
    ON obj_clause TO grant_user_list [WITH GRANT OPTION];
  
obj_with_col_priv_list:
  obj_with_col_priv
  | obj_with_col_priv_list, obj_with_col_priv
  
obj_with_col_priv:
  obj_privilege [column_list]
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
grant_user_list:
    grant_user [, grant_user ...]
/*授予系统权限*/
GRANT {system_privilege_list | ALL PRIVILEGES}
    TO grantee_user [IDENTIFIED BY password] [WITH {GRANT | ADMID} OPTION];
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
/*授予角色*/
GRANT role_list TO grantee_user [IDENTIFIED BY password] [WITH {GRANT | ADMID} OPTION];
role_list:
role [, role ...]
| 
 参数  | 
 描述  | 
|---|---|
priv_type  | 指定授予的权限类型。具体的权限类型及其说明请参见下方权限类型说明表。 同时把多个权限赋予用户时,权限类型用“,”隔开。  | 
system_privilege  | 指定授予的系统权限类型。 同时把多个权限赋予用户时,权限类型用“,”隔开。  | 
obj_clause  | 指定授予权限的层级。权限可以分为以下几个层级: 
  | 
WITH GRANT OPTION  | 指定权限是否允许转授,取消授权时级联。  | 
WITH ADMIN OPTION  | 指定权限是否允许转授,取消授权时不级联。  | 
可以授予的权限类型如下表所示。
权限类型说明表
| 
 权限  | 
 说明  | 
|---|---|
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>GRANT ALL PRIVILEGES TO obsqluser;
Query OK, 0 rows affected (0.03 sec)