本文为您介绍如何为 OceanBase 集群实例的 Oracle 租户创建普通账号,以及普通账号在数据迁移各阶段需要具备的最小权限。
背景信息
OceanBase 集群实例支持的数据库账号包括普通账号和超级账号,您在使用数据传输迁移 OceanBase 集群实例的数据时:
如果使用普通账号,请参见本文的权限说明进行相应授权。
如果使用超级账号,将默认具备所有数据库的读写权限。
本文创建的 OceanBase 集群实例普通账号,用于创建 OceanBase 数据源时填写 用户名。
如果您需要迁移无唯一键表,执行数据迁移任务前,还需要创建具备只读权限的__OCEANBASE_INNER_DRC_USER
用户,用于创建 OceanBase 数据源时填写 __OCEANBASE_INNER_DRC_USER 密码。
创建集群实例普通账号
进入 集群实例工作台 页面。
在控制台页面的左上角,选择目标实例所在地域。
在左侧导航栏,单击 实例列表,单击目标实例的名称。
进入 账号管理 页面。
在 集群实例工作台 页面,单击左侧导航栏的 租户管理。
在 租户列表 页面,单击 租户模式 为 Oracle 的目标租户名称。
在 租户工作台 页面,单击左侧导航栏的 账号管理。
在 账号管理 页面,单击右上方的 新建账号。
在 新建账号 对话框,配置各项参数。
参数
描述
用户名称
由字母、数字和下划线(_)组成,以字母开头、字母或数据结尾,长度不能超过 32 个字符。
账号类型
此处请选择 普通账号,可以对授权数据库进行对应授权操作。权限详情请参见 Oracle 租户的账号权限。
密码
至少包含大写英文字符、小写英文字符、数字和特殊字符(包括 !@#$%^&*()_+-=)中的任意三种,长度为 10~32 个字符。您也可以单击 随机生成 来自动填写密码。
说明您可以单击 复制密码 进行复制并妥善保存。
备注(选填)
请输入账号的备注信息。
单击 确定。
管理访问对象
集群实例普通账号对需要访问的表进行授权的操作如下,您可以根据下文的权限说明授予相应权限。
进入 OceanBase 数据库 Oracle 租户的 账号管理 页面。
单击目标普通账号后的 管理访问对象。
在 访问对象管理 对话框,单击右上角的 添加对象。
在 添加对象 对话框,配置各项参数。
参数
描述
添加方式
支持 指定对象 和 导入对象 两种添加方式。
选择对象
如果您选择 指定对象 方式,请在左侧 源端对象 列表选中需要授权的表对象,单击 >,将其添加至右侧列表中。
如果您选择 导入对象 方式,请根据
用户名.对象名
的格式批量粘贴多个需要授权的表对象到输入框,多个对象之间使用英文逗号(,)分隔。
授予权限
包括 只读 和 读写 两种权限,请根据需求授予相应权限。
单击 确定。
源端集群实例普通账号授权
下表为您介绍 OceanBase 集群实例(Oracle 租户模式) 普通账号作为源端时,在数据迁移各阶段需要具备的最小权限。
表分类 | 结构迁移 | 全量迁移 | 增量同步 | 全量校验 | 反向增量 |
有主键表、有非空唯一键表 | 只读 | 只读 | 只读 | 只读 | 读写 |
无主键表、无非空唯一键表 | 只读 |
| 只读 | 需要 __OCEANBASE_INNER_DRC_USER 用户 | 读写 |
目标端集群实例普通账号授权
下表为您介绍 OceanBase 集群实例(Oracle 租户模式) 普通账号作为目标端时,在数据迁移各阶段需要具备的最小权限。
表分类 | 结构迁移 | 全量迁移 | 增量同步 | 全量校验 | 反向增量 |
有主键表、有非空唯一键表 | 读写 | 读写 | 读写 | 只读 | 只读 |
无主键表、无非空唯一键表 | 读写 | 读写 | 读写 | 不支持 | 只读 |
创建 __OCEANBASE_INNER_DRC_USER 用户及授权
进入 OceanBase 管理控制台的 租户工作台 页面。
在 租户工作台 页面,单击右上角的 登录数据库。
在 选择数据库账号 对话框,输入或从下拉列表中选择需要登录的数据库名称,单击 确定。
在 请输入连接密码 对话框,输入数据库的密码,单击 确定。
登录数据库后,执行下述命令,创建
__OCEANBASE_INNER_DRC_USER
用户。CREATE USER '__OCEANBASE_INNER_DRC_USER' IDENTIFIED BY <your_password>;
创建成功后,执行下述命令为该用户授权。
GRANT CREATE SESSION TO '__OCEANBASE_INNER_DRC_USER'; GRANT SELECT ANY DICTIONARY TO '__OCEANBASE_INNER_DRC_USER';
对迁移库表的
SELECT
权限,支持以下两种赋权方式。// 赋予系统权限 GRANT SELECT ANY TABLE TO '__OCEANBASE_INNER_DRC_USER'; // 赋予对象权限(仅支持对具体库表对象赋权) GRANT SELECT ON <schema>.<table> TO '__OCEANBASE_INNER_DRC_USER';