基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
用户权限说明
更新时间:2023-09-05 15:35:59
OceanBase 迁移服务(OceanBase Migration Service,OMS)社区版迁移数据库前,请确保所有数据源已创建一个数据库用户作为迁移用户。该用户需要具备源端和目标端数据源对应的权限。
创建数据库用户
您在使用 OMS 社区版的数据迁移功能前,请先在源端和目标端数据库中,为数据迁移项目创建专用的数据库用户。
创建 drc_user 用户
OceanBase 数据库需要在 sys 租户下创建用户,用于 OMS 社区版向 OceanBase 数据库消费 Clog 日志时进行鉴权。
请注意用户名和密码需要和 OMS 部署配置文件 config.yaml 中的 drc_user、drc_password 配置项保持一致。
创建用户
CREATE USER <drc_user> IDENTIFIED BY <drc_password>;赋予权限
GRANT SELECT ON OCEANBASE.* TO <drc_user>;
创建 __oceanbase_inner_drc_user 用户
如果您需要迁移无主键表,执行数据迁移项目前,请在源端 OceanBase 社区版 MySQL 租户创建 __oceanbase_inner_drc_user 用户。
创建用户
CREATE USER __oceanbase_inner_drc_user IDENTIFIED BY '<password>';赋予权限
GRANT SELECT ON *.* TO __oceanbase_inner_drc_user;
创建 MySQL 数据库用户
登录自建的 MySQL 数据库。
在自建 MySQL 数据库中创建用户,用于数据迁移。
CREATE USER '<user_name>'@'<host_name>' IDENTIFIED BY '<password>';参数 描述 user_name 待创建的账号。 host_name 允许该账号登录的主机,如果允许该账号从任意主机登录数据库,请使用百分号(%)。 password 账号的密码。
创建 OceanBase 数据库社区版用户
OceanBase 数据库社区版用户权限管理的详细操作,请参见《OceanBase 数据库社区版管理员指南》。
以系统管理员身份登录 OceanBase 数据库社区版。
在 OceanBase 数据库社区版中创建用户,用于数据迁移。
以创建用户 OMS_TEST 为例,创建语句如下。
CREATE USER <OMS_TEST> IDENTIFIED BY '<password>';
权限说明
MySQL 数据库作为源端的权限说明
数据库用户需要对待迁移的数据库具备读权限。
GRANT SELECT ON <database_name>.* TO '<user_name>';MySQL 增量同步时,数据库用户需要具备
REPLICATION CLIENT和REPLICATION SLAVE权限。GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO <user_name> [WITH GRANT OPTION];说明
WITH GRANT OPTION为可选参数。如果您在添加 MySQL 数据源时,勾选了 增量同步时,允许 OMS 向该实例自动写入增量心跳数据,OMS 会向对应的 MySQL 数据库创建并更新
drc.heartbeat表。此时,MySQL 数据库用户需要具备创建表、写表的权限。添加数据源详情请参见 添加 MySQL 数据源。赋予数据库用户创建表的权限
GRANT CREATE ON drc.heartbeat TO '<user_name>';赋予数据库用户写表的权限
GRANT INSERT, UPDATE, DELETE ON drc.heartbeat TO '<user_name>';
同步增量日志拉取用户需要具备
SELECT *.*权限。GRANT SELECT ON *.* TO '<user_name>';为 MySQL 数据库开启 Binlog。
OMS 会基于全量迁移任务,读取 MySQL 的 Binlog,实时同步增量数据至目标端。数据迁移项目的预检查环节也会检查 MySQL 数据库的 Binlog 配置。使用 OMS 迁移 MySQL 数据库的增量数据前,请先在 MySQL 中开启 Binlog。
登录自建 MySQL 数据库所在的部署机。
执行下述命令,修改 MySQL 数据库的配置文件
my.cnf。配置文件
my.cnf的默认路径为/etc/my.cnf。log_bin=mysql_bin binlog_format=row binlog_row_image=full //如果源数据库为 MySQL 5.6 及以上的版本,需要设置该项。执行以下命令,重启 MySQL 数据库。
$Mysql_Dir需要替换为 MySQL 数据库的安装路径。[$Mysql_Dir]/bin/mysqladmin -u root -p ****** [$Mysql_Dir]/bin/safe_mysqld &登录自建的 MySQL 源数据库,执行如下 SQL 语句,确认 Binlog 功能已启用。
show variables like '%log_bin%';回显信息中,
log bin和sql log bin的状态均为 ON,表示已启用 Binlog 功能。
MySQL 数据库作为目标端的权限说明
执行下述命令,为 MySQL 用户授权。
GRANT <privilege_type> ON <database_name>.<table_name> TO '<user_name>'@'<host_name>' [WITH GRANT OPTION];
| 参数 | 描述 |
|---|---|
| privilege_type | 授予该账号 SELECT、INSERT 和 UPDATE 等操作权限。如果需要授予该账号所有权限,请使用 ALL。 |
| database_name | 数据库的名称。如果要授予该账号具备所有数据库的操作权限,请使用星号(*)。 |
| table_name | 表的名称。如果要授予该账号具备所有表的操作权限,请使用星号(*)。 |
| user_name | 待授权的账号。 |
| host_name | 允许该账号登录的主机,如果允许该账号从任意主机登录,请使用百分号(%)。 |
| WITH GRANT OPTION | 授予该账号使用 GRANT 命令的权限,该参数为可选。 |
OceanBase 社区版作为源端的权限说明
以用户 oms_user 为例,执行下述语句赋予该用户相应的权限。
GRANT SELECT ON *.* TO <oms_user> WITH GRANT OPTION;//整个租户迁移
GRANT INSERT,UPDATE,DELETE ON *.* TO <oms_user>;//反向增量
//源端有无主键表,在租户下建
CREATE USER '<__oceanbase_inner_drc_user>' IDENTIFIED BY '<password>';
GRANT SELECT ON *.* TO '<__oceanbase_inner_drc_user>';
当需要从 OceanBase 社区版消费增量日志时,需要在待迁移的 OceanBase 集群 sys 租户下创建 drc user 用户,然后在 OMS 社区版 yaml 文件中指定。详情请参见《部署 OMS 社区版》。
OceanBase 社区版作为目标端的权限说明
迁移 MySQL 数据库的数据至 OceanBase 社区版时,OceanBase 社区版迁移用户的权限如下:
对目标端数据库具备
CREATE、CREATE VIEW、SELECT、INSERT、UPDATE和DELETE权限。GRANT CREATE, CREATE VIEW, SELECT, INSERT, UPDATE, DELETE ON <database_name>.* TO '<user_name>';对整个租户具备
SELECT权限。GRANT SELECT ON *.* TO '<user_name>';