创建 OceanBase Serverless 实例用户及授权

本文为您介绍如何为 OceanBase 数据库 Serverless 实例创建普通账号,以及普通账号在数据迁移各阶段需要具备的最小权限。

背景信息

目前 Serverless 实例支持的实例类型仅为 Serverless for MySQL,支持的数据库账号包括普通账号、超级账号和只读账号,您在使用数据传输迁移 Serverless 实例的数据时:

  • 如果使用普通账号,请参见本文的权限说明进行相应授权。

  • 如果使用超级账号,默认具备所有数据库的读写权限。

  • 如果使用只读账号,默认具备所有数据库的读权限。

本文创建的 Serverless 实例普通账号,用于创建 OceanBase Serverless 实例数据源时填写 用户名

image

如果您需要迁移无唯一键表,执行数据迁移任务前,还需要创建具备只读权限的__oceanbase_inner_drc_user用户,用于创建 OceanBase 数据源时填写 __oceanbase_inner_drc_user 密码image.png

创建 Serverless 实例普通账号

  1. 进入 Serverless 实例工作台 页面。

    1. 登录 OceanBase 管理控制台

    2. 在控制台页面的左上角,选择目标实例所在地域。

    3. 在左侧导航栏,单击 实例列表,单击 实例类型Serverless 的目标实例的名称。

      创建 Serverless 实例的详情请参见 创建 Serverless 实例

  2. Serverless 工作台 页面,单击左侧导航栏的 账号管理

  3. 账号管理 页面,单击右上方的 新建账号

    image

  4. 新建账号 对话框,配置各项参数。

    image.png

    参数

    描述

    用户名称

    由字母、数字和下划线(_)组成,以字母开头,以字母或数字结尾,长度不能超过 32 个字符。

    账号类型

    此处请选择 普通账号

    授权数据库(选填)

    为该账号授予一个或多个数据库的相应权限。

    1. 在左侧 未授权 列表中,选中一个或多个需要授权的数据库,单击 >,将其添加至右侧列表中。

    2. 在右侧 已授权 列表中,为单个数据库授予 读写仅 DDL仅 DML只读 权限。

    密码

    至少包含大写英文字符、小写英文字符、数字和特殊字符(包括 !@#$%^&*()_+-=)中的任意三种,长度为 10~32 个字符。您也可以单击 随机生成 来自动填写密码。

    说明

    您可以单击 复制密码 进行复制并妥善保存。

    备注(选填)

    请输入账号的备注信息。

  5. 单击 确定

源端 Serverless 实例普通账号授权

下表为您介绍 Serverless 实例普通账号作为源端时,在数据迁移各阶段需要具备的最小权限。

表分类

结构迁移

全量迁移

增量同步 DML

增量同步 DDL

全量校验

反向增量

有主键表、有非空唯一键表

只读

只读

只读

只读

只读

  • 仅 DDL(仅同步 DDL)

  • 仅 DML(仅同步 DML)

  • 读写(同步 DDL + DML)

无主键表、无非空唯一键表

只读

  • 只读

  • 需要 __oceanbase_inner_drc_user 用户

只读

只读

需要 __oceanbase_inner_drc_user 用户

  • 仅 DDL(仅同步 DDL)

  • 仅 DML(仅同步 DML)

  • 读写(同步 DDL + DML)

目标端 Serverless 实例普通账号授权

下表为您介绍 Serverless 实例普通账号作为目标端时,在数据迁移各阶段需要具备的最小权限。

表分类

结构迁移

全量迁移

增量同步 DML

增量同步 DDL

全量校验

反向增量 DML

反向增量 DDL

有主键表、有非空唯一键表

仅 DDL

读写

读写

仅 DDL

只读

只读

只读

无主键表、无非空唯一键表

仅 DDL

读写

读写

仅 DDL

不支持

只读

只读

创建 __oceanbase_inner_drc_user 用户及授权

  1. 进入 OceanBase 管理控制台的 租户工作台 页面。

  2. 租户工作台 页面,单击右上角的 登录数据库

    您也可以进入 数据库管理 页面进行登录。

    image.png

  3. 选择数据库账号 对话框,输入需要登录的数据库名称,单击 确定

  4. 请输入连接密码 对话框,输入数据库的密码,单击 确定

  5. 登录数据库后,执行下述命令,创建 __oceanbase_inner_drc_user 用户。

    create user __oceanbase_inner_drc_user identified by '<password>';
  6. 创建成功后,执行下述命令为该用户授权。

    grant select on *.* to __oceanbase_inner_drc_user;