首批通过分布式安全可靠测评,为关键业务系统打造
修改用户权限
更新时间:2026-06-20 16:04:48
修改用户权限包括授予用户权限和撤销用户权限。
通过 SQL 语句授予权限
您可以通过 GRANT 语句授予用户用户级权限、数据库级权限或对象权限。
前提条件
当前用户必须拥有被授予的权限(例如,user1 把表 t1 的 SELECT 权限授予 user2,则 user1 必须拥有表 t1 的 SELECT 的权限),并且拥有 GRANT OPTION权限,才能授予成功。
查看当前拥有权限的操作请参见 查看用户权限。
注意事项
进行授权前,需要注意以下事项:
给特定用户授予权限时,如果用户不存在,可以直接创建用户。如果
sql_mode='no_auto_create_user',且语句中没有IDENTIFIED BY指定密码时,不可以直接创建用户。同时把多个权限赋予用户时,权限类型用英文逗号(,)分隔。
同时给多个用户授权时,用户名用英文逗号(,)分隔。
用户被授权后,该用户只有重新连接 OceanBase 数据库,权限才能生效。
由于目前没有
CHANGE EFFECTIVE TENANT的权限控制,故sys租户下的用户都可以进行授权。
授予权限的语法
授予权限的语法如下:
GRANT priv_type
ON priv_level
TO user_specification [, user_specification]...
[WITH GRANT OPTION];
privilege_type:
ALTER
| CREATE
| CREATE USER
| CREATE VIEW
| DELETE
| DROP
| GRANT OPTION
| INDEX
| INSERT
| PROCESS
| SELECT
| SHOW DATABASES
| SHOW VIEW
| SUPER
| UPDATE
| USAGE
| CREATE SYNONYM
priv_level:
*
| *.*
| database_name.*
| database_name.table_name
| table_name
| database_name.rountine_name
user_specification:
user_name [IDENTIFIED BY [PASSWORD] 'password']
语句使用说明:
priv_type:指定授予的权限类型。同时将多个权限授予用户时,权限类型之间使用英文逗号(,)分隔。priv_level:指定授予权限的层级。MySQL 模式中,权限主要分为以下层级:用户层级:适用于所有的数据库。使用
GRANT ... ON *.*授予用户级权限。数据库层级:适用于指定一个数据库中的所有目标。使用
GRANT ... ON db_name.*授予数据库级权限。表层级:适用于指定一个表中的所有列。使用
GRANT ... ON database_name.table_name授予表级权限。
OceanBase 数据库 MySQL 模式支持的用户权限及其详细说明请参见 用户及权限概述。
user_specification:指定待授予权限的用户。如果用户不存在,则直接创建用户。同时授权给多个用户时,用户名之间使用英文逗号(,)分隔。
user_name IDENTIFIED BY 'password'与user_name IDENTIFIED BY PASSWORD 'password':user_name IDENTIFIED BY 'password'子句中的密码为明文;user_name IDENTIFIED BY PASSWORD 'password'子句中的密码为密文。WITH GRANT OPTION:指定权限是否允许转授或撤销。
操作示例
授予用户级权限
用户级权限即全局权限,该权限适用于所有数据库。通常使用
GRANT ... ON *.*授予用户级权限。将所有数据库的所有对象的权限授予用户
user。obclient> GRANT ALL ON *.* TO user;将所有数据库中所有表的
INSERT、SELECT权限授予用户user。obclient> GRANT SELECT, INSERT ON *.* TO user;
授予数据库级权限
数据库级权限是指某个指定的数据库中所有对象的操作权限。通常使用
GRANT ... ON db_name.*授予数据库级权限。将数据库
db1的所有对象的操作权限授予用户user。obclient> GRANT ALL ON db1.* TO user;将数据库
db1的所有表的INSERT、SELECT权限授予用户user。obclient> GRANT SELECT, INSERT ON db1.* TO user;
授予表级权限
对象权限是指某个指定的数据库中的指定表的操作权限。通常使用
GRANT ... ON db_name.tb1_name授予对象权限。将数据库
db1的表tb1_name的INSERT、SELECT权限授予用户user。obclient> GRANT SELECT, INSERT ON db1.tb1_name TO user;将数据库
db1的表tb1_name的操作权限授予用户user。obclient> GRANT ALL ON db1.tb1_name TO user;
更多 GRANT 语句的信息请参见 GRANT。
通过 SQL 语句撤销权限
前提条件
当前用户必须拥有被撤销的权限(例如,
user1要撤销user2对表t1的SELECT权限,则user1必须拥有表t1的SELECT权限),并且拥有GRANT OPTION权限。撤销
ALL PRIVILEGES和GRANT OPTION权限时,当前用户必须拥有全局GRANT OPTION权限,或者对权限表的UPDATE及DELETE权限。
注意事项
同时对某个用户撤销多个权限时,权限类型用英文逗号(,)隔开。
同时撤销多个用户的授权时,用户名用英文逗号(,)隔开。
撤销操作不会级联。例如,用户
user1给user2授予了某些权限,撤回user1的权限不会同时也撤回user2的相应权限。
撤销权限的语法
撤销权限的语法如下:
REVOKE priv_type
ON priv_level
FROM 'user_name';
priv_type:
ALTER
| CREATE
| CREATE USER
| CREATE VIEW
| DELETE
| DROP
| GRANT OPTION
| INDEX
| INSERT
| PROCESS
| SELECT
| SHOW DATABASES
| SHOW VIEW
| SUPER
| UPDATE
| USAGE
priv_level:
*
| *.*
| database_name.*
| database_name.table_name
| table_name
| database_name.rountine_name
语句使用说明:
priv_type:指定撤销的权限类型。同时撤销用户的多个权限时,权限类型之间使用英文逗号(,)分隔。priv_level:指定撤销的权限层级。主要分为以下层级:用户层级:适用于所有的数据库。使用
REVOKE ... ON *.*撤销用户级权限。数据库层级:适用于一个指定数据库中的所有目标。使用
REVOKE ... ON db_name.*撤销数据库级权限。表层级:适用于一个指定表中的所有列。使用
REVOKE ... ON database_name.table_name撤销表级权限。
OceanBase 数据库 MySQL 模式支持的用户权限及其详细说明请参见 用户及权限概述。
user_name:指定待撤销权限的用户,同时撤销多个用户的权限时,用户名之间使用英文逗号(,)分隔。
操作示例
撤销用户级权限
撤销用户
user操作所有数据库中所有表的INSERT、SELECT权限。obclient> REVOKE SELECT, INSERT ON *.* FROM 'user';撤销数据库级权限
撤销用户
user操作数据库db1的所有表的INSERT、SELECT权限。obclient> REVOKE SELECT, INSERT ON db1 FROM 'user';撤销表级权限
撤销用户
user操作数据库db1的表tb1_name的INSERT、SELECT权限。obclient> REVOKE SELECT, INSERT ON db1.tb1_name FROM 'user';
更多 REVOKE 语句的信息请参见 REVOKE。
通过 OCP 授予或撤销权限
OCP 从 V2.5.0 版本开始支持修改 MySQL 兼容模式的用户权限。
前提条件
修改用户权限前,需要确认以下信息:
请确认当前 OCP 用户具备 TENANT_MANAGER 角色的权限,如果没有该角色权限,请联系 OCP 管理员为您添加相应角色,具体操作方法请参见 OCP 对应版本的《用户指南》文档中的 编辑用户 。
当前 OCP 用户的密码箱中具有该租户的
root密码,OCP 用户的密码箱相关操作请参见对应版本的《OCP 用户指南》文档。
操作步骤
登录 OCP。
在左导航栏上单击 租户 ,进入租户页面。
在租户列表中,筛选 租户模式 为 MySQL 的租户,单击其租户名,进入 总览 页面。
在左侧导航栏上,单击 用户管理 。
在用户列表中,找到待修改权限的用户,在对应的 操作 列中,单击 修改权限 。

在弹出的对话框中,修改全局权限和数据库权限。
全局权限 和 数据库权限 中涉及的权限类型说明如下表所示。
权限 说明 ALTER ALTER TABLE 的权限 CREATE CREATE TABLE 的权限 DELETE DELETE 的权限 DROP DROP 的权限 INSERT INSERT 的权限 SELECT SELECT 的权限 UPDATE UPDATE 的权限 INDEX CREATE INDEX、DROP INDEX 的权限 CREATE VIEW 创建、删除视图的权限 SHOW VIEW SHOW CREATE VIEW权限 CREATE USER CREATE USER、DROPUSER、RENAME USER和REVOKE ALLPRIVILEGES 的权限 PROCESS PROCESS 权限 SUPER SET GLOBAL 修改全局系统参数的权限 SHOW DATABASES 全局 SHOW DATABASES 的权限 GRANT OPTION GRANT OPTION 的权限 单击 提交 。