首批通过分布式安全可靠测评,为关键业务系统打造
修改用户权限
更新时间:2026-06-27 17:57:16
修改用户权限包括授予用户权限和撤销用户权限。
通过 SQL 语句授予权限
前提条件
当授予对象权限时,当前用户必须是对象的所有者,或者拥有被授予的权限(例如,
user1把表t1的SELECT权限授予user2,则user1必须拥有表t1的SELECT的权限),并且拥有GRANT OPTION权限,或者拥有GRANT ANY OBJECT PRIVILEGE权限,才能授予成功。当授予系统权限或角色时,当前用户必须拥有被授予的权限或角色,并且拥有
GRANT OPTION权限,或者拥有GRANT ANY PRIVILEGE权限或GRANT ANY ROLE权限,才能授予成功。
查看当前拥有权限的操作请参见 查看用户权限。如果您没有所需的权限,请联系管理员为您添加。查看当前拥有角色的操作请参见 查看角色。
注意事项
进行授权操作时,需要注意以下事项:
同时把多个权限赋予用户时,权限类型用英文逗号(,)分隔。
用户被授权后,该用户只有重新连接 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
| DELETE
| INDEX
| INSERT
| SELECT
| UPDATE
| REFERENCES
| EXECUTE
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];
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
语句使用说明:
obj_privilege:指定授予的对象权限类型。同时将多个权限授予用户时,权限类型之间用英文逗号(,)分隔。OceanBase 数据库 Oracle 模式支持的对象权限及其详细说明请参见 用户及权限概述。
obj_clause:指定授予的对象权限的涉及的对象。system_privilege:指定授予的系统权限类型。同时将多个权限授予用户时,权限类型之间用英文逗号(,)分隔。OceanBase 数据库 Oracle 模式支持的系统权限及其详细说明请参见 用户及权限概述。
WITH GRANT OPTION:表示指定当前授予的权限是否允许转授,且取消授权时会级联。
操作示例
授予系统权限
将系统权限
CREATE SEQUENCE授予用户user。obclient> GRANT CREATE SEQUENCE TO user;授予对象权限
将视图
emp_view的SELECT、UPDATE权限授予用户user。obclient> GRANT SELECT, UPDATE ON emp_view TO user;
GRANT 语句的更多信息,请参见 GRANT。
通过 SQL 语句撤销权限
前提条件
当撤销对象权限时,当前用户必须拥有被撤销的权限(例如,
user1要撤销user2对表t1的SELECT权限,则user1必须拥有表t1的SELECT权限),并且拥有GRANT OPTION权限,或者拥有GRANT ANY OBJECT PRIVILEGE权限,才能撤销成功。当撤销系统权限或角色时,当前用户必须拥有被撤销的权限或角色,并且拥有
GRANT OPTION权限,或者拥有GRANT ANY PRIVILEGE权限或GRANT ANY ROLE权限,才能撤销成功。撤销
ALL PRIVILEGES和GRANT OPTION权限时,当前用户必须拥有全局GRANT OPTION权限,或者对权限表的UPDATE及DELETE权限。
查看当前拥有权限的操作请参见 查看用户权限。如果您没有所需的权限,请联系管理员为您添加。
注意事项
同时对某个用户撤销多个权限时,权限类型用英文逗号(,)分隔。
同时撤销多个用户的授权时,用户名用英文逗号(,)分隔。
当授权给用户时,该权限没有指定
GRANT OPTION时,撤销操作不会级联。例如,用户user1给user2授予了某些权限,撤回user1的权限不会同时也撤回user2的相应权限。
撤销权限的语法
撤销对象权限的语法如下:
REVOKE obj_privileges
ON obj_clause FROM user_list;
user_list:
user [, user ...]
obj_privileges:
obj_privilege [, obj_privilege ...]
obj_privilege:
ALTER
| DELETE
| INDEX
| INSERT
| SELECT
| UPDATE
| REFERENCES
| EXECUTE
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
语句使用说明:
obj_privilege:指定待撤销的对象权限的类型。同时撤销多个权限时,权限类型之间用英文逗号(,)分隔。OceanBase 数据库 Oracle 模式支持的对象权限及其详细说明请参见 用户及权限概述。
obj_clause:指定撤销的对象权限涉及的对象。system_privilege:指定待撤销的系统权限类型。同时撤销多个权限时,权限类型之间用英文逗号(,)分隔。OceanBase 数据库 Oracle 模式支持的系统权限及其详细说明请参见 用户及权限概述。
操作示例
撤销系统权限
撤销用户
user的系统权限CREATE SEQUENCE。obclient> REVOKE CREATE SEQUENCE FROM user;撤销对象权限
撤销用户
user的对于视图emp_view的对象权限SELECT权限和UPDATE权限。obclient> REVOKE SELECT, UPDATE ON emp_view FROM user;
REVOKE 语句的更多信息,请参见 REVOKE。
通过 OCP 授予或撤销用户权限
前提条件
修改用户权限前,需要确认以下信息:
请确认当前 OCP 用户具备 TENANT_MANAGER 角色的权限,如果没有该角色权限,请联系 OCP 管理员为您添加相应角色的权限,具体操作方法请参见 OCP 对应版本的《用户指南》文档中的 编辑用户 。
当前 OCP 用户的密码箱中具有该租户的
sys密码,OCP 用户的密码箱相关操作请参见 OCP 对应版本的《用户指南》文档。
操作步骤
登录 OCP。
在左导航栏上单击 租户 ,进入 租户 页面。
在租户列表中,选择 租户模式 为 Oracle 的租户,进入 总览 页面。
单击左导航栏中的 用户管理 。
单击 用户列表 页签中,找到待修改权限的用户,单击用户名,进入用户的详情页面。
在 拥有系统权限 区域右上角,单击 修改系统权限 。

在弹出的对话框中,选择需要授予的权限或者对需要撤销的权限取消选择,单击 确定 。