OceanBase V2.x.x 中用户分为两类:系统租户下的用户和一般租户下的用户。创建用户时,如果当前会话的租户为系统租户,则新建的用户为系统租户用户,反之为一般租户下的用户。
一般租户又分为 Oracle 模式租户和 MySQL 模式租户,以下简称 Oracle 租户和 MySQL 租户。
用户名称在租户内是唯一的,不同租户下的用户可以同名,所以通过用户名@租户名
的形式可以在系统全局唯一定位一个租户。为区别系统租户和一般租户下的用户,建议对系统租户下的用户名称使用特定前缀。系统租户和普通租户都有一个内置管理员用户,MySQL 租户的管理员用户为用户 root,Oracle 租户的管理员用户为用户 sys。系统租户的 root 用户为系统管理员,普通租户的 root 用户为租户管理员,某个普通租户的客户得到普通租户 root 用户和密码,可进行本租户范围的管理工作。
MySQL 租户
OceanBase 数据库 MySQL 租户下的用户只能拥有该租户下对象的访问权限,权限设计与 MySQL 兼容。
当前 OceanBase 数据库中 MySQL 模式相关的权限列表如下表所示。
权限类别 | 功能 | 描述 | OceanBase 数据库支持的版本 |
---|---|---|---|
对象权限 | select_priv | 确定用户是否可以通过 | V1.4.71 及以上版本 |
insert_priv | 确定用户是否可以通过 | V1.4.71 及以上版本 | |
update_priv | 确定用户是否可以通过 | V1.4.71 及以上版本 | |
delete_priv | 确定用户是否可以通过 | V1.4.71 及以上版本 | |
create_priv | 确定用户是否可以创建新的数据库和表。 | V1.4.71 及以上版本 | |
drop_priv | 确定用户是否可以删除现有数据库和表。 | V1.4.71 及以上版本 | |
process_priv | 确定用户是否可以通过 | V1.4.71 及以上版本 | |
file_priv | 确定用户是否可以执行 | 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 | 确定用户是否可以执行某些强大的管理功能,例如通过 | V1.4.71 及以上版本 | |
create_view_priv | 确定用户是否可以创建视图。 | V1.4.71 及以上版本 | |
show_view_priv | 确定用户是否可以查看视图或了解视图如何执行。 | V1.4.71 及以上版本 | |
create_user_priv | 确定用户是否可以执行 | V1.4.71 及以上版本 | |
create_synonym_priv | 确定用户是否可以创建同义词和公共同义词 | V1.4.71 及以上版本 | |
对象权限(集群级别) | ALTER TENANT | 修改租户信息的权限。 | V1.4.71 及以上版本 |
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 及以上版本 |