OceanBase V2.x.x 中用户分为两类:系统租户下的用户和一般租户下的用户。创建用户时,如果当前会话的租户为系统租户,则新建的用户为系统租户用户,反之为一般租户下的用户。

一般租户又分为 Oracle 模式租户和 MySQL 模式租户,以下简称 Oracle 租户和 MySQL 租户。

用户名称在租户内是唯一的,不同租户下的用户可以同名,所以通过用户名@租户名的形式可以在系统全局唯一定位一个租户。为区别系统租户和一般租户下的用户,建议对系统租户下的用户名称使用特定前缀。系统租户和普通租户都有一个内置管理员用户,MySQL 租户的管理员用户为用户 root,Oracle 租户的管理员用户为用户 sys。系统租户的 root 用户为系统管理员,普通租户的 root 用户为租户管理员,某个普通租户的客户得到普通租户 root 用户和密码,可进行本租户范围的管理工作。

MySQL 租户

OceanBase 数据库 MySQL 租户下的用户只能拥有该租户下对象的访问权限,权限设计与 MySQL 兼容。

当前 OceanBase 数据库中 MySQL 模式相关的权限列表如下表所示。

权限类别

功能

描述

OceanBase 数据库支持的版本

对象权限

select_priv

确定用户是否可以通过SELECT命令选择数据。

V1.4.71 及以上版本

insert_priv

确定用户是否可以通过INSERT命令插入数据。

V1.4.71 及以上版本

update_priv

确定用户是否可以通过UPDATE命令修改现有数据。

V1.4.71 及以上版本

delete_priv

确定用户是否可以通过DELETE命令删除现有数据。

V1.4.71 及以上版本

create_priv

确定用户是否可以创建新的数据库和表。

V1.4.71 及以上版本

drop_priv

确定用户是否可以删除现有数据库和表。

V1.4.71 及以上版本

process_priv

确定用户是否可以通过SHOW PROCESSLIST命令查看其他用户的进程。

V1.4.71 及以上版本

file_priv

确定用户是否可以执行SELECT INTO OUTFILELOAD DATA INFILE命令。

V1.4.71 及以上版本

grant_priv

确定用户是否可以将已经授予给自己的权限再授予其他用户。

V1.4.71 及以上版本

index_priv

确定用户是否可以创建和删除表索引。

V1.4.71 及以上版本

alter_priv

确定用户是否可以重命名和修改表结构。

V1.4.71 及以上版本

show_db_priv

确定用户是否可以查看服务器上所有数据库的名字,包括用户拥有足够访问权限的数据库。

V1.4.71 及以上版本

super_priv

确定用户是否可以执行某些强大的管理功能,例如通过KILL命令删除用户进程,使用SET GLOBAL修改全局MySQL 变量,执行关于复制和日志的各种命令。

V1.4.71 及以上版本

create_view_priv

确定用户是否可以创建视图。

V1.4.71 及以上版本

show_view_priv

确定用户是否可以查看视图或了解视图如何执行。

V1.4.71 及以上版本

create_user_priv

确定用户是否可以执行CREATE USER命令,这个命令用于创建新的 MySQL 账号。

V1.4.71 及以上版本

create_synonym_priv

确定用户是否可以创建同义词和公共同义词

V1.4.71 及以上版本

对象权限(集群级别)

ALTER TENANT

修改租户信息的权限。

V1.4.71 及以上版本

ALTER SYSTEM

执行ALTER SYSTEM命令的权限。

V1.4.71 及以上版本

CREATE RESOURCE POOL

创建、修改和删除资源池的权限。

V2.2.60 及以上版本

CREATE RESOURCE UNIT

创建、修改和删除资源单元的权限。

V2.2.60 及以上版本

Oracle 租户

OceanBase 数据库 Oracle 租户下的用户只能拥有该租户下对象的访问权限,权限设计与 Oracle 兼容。

当前 OceanBase 数据库中 Oracle 模式相关的权限列表如下表所示。

权限类别

功能

描述

OceanBase 支持的版本

对象权限

CREATE PROCEDURE

为用户创建存储过程的权限。

V2.2.60 及以上版本

CREATE ANY PROCEDURE

为任意用户创建存储过程的权限。

V2.2.60 及以上版本

ALTER ANY PROCEDURE

修改任意存储过程的权限。

V2.2.60 及以上版本

DROP ANY PROCEDURE

删除任意存储过程的权限。

V2.2.60 及以上版本

EXECUTE ANY PROCEDURE

执行任意存储过程的权限。

V2.2.60 及以上版本

CREATE SEQUENCE

为用户创建序列的权限。

V2.2.60 及以上版本

CREATE ANY SEQUENCE

为任意用户创建序列的权限。

V2.2.60 及以上版本

ALTER ANY SEQUENCE

修改任意序列的权限。

V2.2.60 及以上版本

DROP ANY SEQUENCE

删除任意序列的权限。

V2.2.60 及以上版本

SELECT ANY SEQUENCE

使用任意序列的权限。

V2.2.60 及以上版本

CREATE SYNONYM

为用户创建同义词的权限。

V2.2.60 及以上版本

CREATE ANY SYNONYM

为任意用户创建同义词的权限。

V2.2.60 及以上版本

CREATE PUBLIC SYNONYM

创建公共同义词的权限。

V2.2.60 及以上版本

DROP ANY SYNONYM

删除任意同义名的权限。

V2.2.60 及以上版本

DROP PUBLIC SYNONYM

删除公共同义词的权限。

V2.2.60 及以上版本

CREATE TRIGGER

为用户创建触发器的权限。

V2.2.60 及以上版本

CREATE ANY TRIGGER

为任意用户创建触发器的权限。

V2.2.60 及以上版本

ALTER ANY TRIGGER

修改任意触发器的权限。

V2.2.60 及以上版本

DROP ANY TRIGGER

删除任意触发器的权限。

V2.2.60 及以上版本

CREATE ROLE

创建角色的权限。

V2.2.60 及以上版本

ALTER ANY ROLE

修改任意角色的权限。

V2.2.60 及以上版本

DROP ANY ROLE

删除任意角色的权限。

V2.2.60 及以上版本

GRANT ANY ROLE

授予任意角色的权限。

V2.2.60 及以上版本

PURGE DBA_RECYCLEBIN

清除回收站的权限。

V2.2.60 及以上版本

角色权限

创建角色

V2.2.60 及以上版本

删除角色

V2.2.60 及以上版本

创建 public 角色

V2.2.60 及以上版本

为角色赋予权限

V2.2.60 及以上版本

从角色回收权限

V2.2.60 及以上版本

为角色赋予角色

V2.2.60 及以上版本

从角色回收角色

V2.2.60 及以上版本

系统预定义的角色

V2.2.60 及以上版本

设置用户的默认角色

V2.2.60 及以上版本