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

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

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

MySQL 租户

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

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

权限类别

功能

描述

OceanBase 数据库支持的版本

系统权限(MySQL 模式)

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 及以上版本

系统权限(集群级别)

ALTER TENANT

修改租户信息的权限。

V1.4.71 及以上版本

ALTER SYSTEM

执行 ALTER SYSTEM 命令的权限。

V1.4.71 及以上版本

Oracle 租户

OceanBase 数据库 Oracle 租户下的用户只能拥有该租户下对象的访问权限。Oracle 租户下的权限与 MySQL 租户下的权限实现机制一致,具体权限请参见 MySQL 模式的权限表即可。