首批通过分布式安全可靠测评,为关键业务系统打造
用户权限说明
更新时间:2026-04-14 15:40:46
OceanBase 迁移服务(OceanBase Migration Service,OMS)社区版迁移数据库前,请确保所有数据源已创建一个数据库用户作为迁移用户或同步用户。该用户需要具备源端和目标端数据源对应的权限。
MySQL 数据库作为源端的权限说明
数据库用户需要对待迁移的数据库具备读权限。如果是 MySQL 数据库 8.0 版本,请额外赋予
SHOW VIEW权限。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 数据库作为目标端的权限说明
MySQL 数据库作为目标端时,迁移用户需要具备目标端数据库的 CREATE、CREATE VIEW、INSERT、UPDATE 和 DELETE 权限。
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 社区版作为源端的权限说明
OceanBase 社区版作为源端时,迁移用户需要如下权限:
对源端数据库具备
SELECT权限。对源端租户的 OceanBase 数据库和 MySQL 数据库的
SELECT权限。如果是增量数据同步的场景,您需要在 OceanBase 社区版的
sys租户下创建一个用户,并赋予其select on *.*权限。
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>';
PostgreSQL 数据库作为源端的权限说明
PostgreSQL 数据库至 OceanBase 社区版的结构迁移阶段,需要赋予迁移用户对表和视图的 SELECT 权限。
PostgreSQL 数据库至 OceanBase 社区版的增量同步阶段,需要赋予迁移用户如下权限:
如果配置的待迁移表的白名单包含通配符,必须使用 superuser,否则创建 publication 会报错无权限。反之,则可以不使用 superuser。
需要具备 REPLICATION 和 LOGIN 的 role,CREATE PUBLICATION 的权限。
CREATE USER <user_name> REPLICATION LOGIN ENCRYPTED PASSWORD '<password>';GRANT CREATE ON DATABASE <database_name> TO <user_name>;
需要是待迁移表的 Owner。
// 创建 replication_group。 CREATE ROLE <replication_group>; // 将待迁移表的原始 Owner 添加至 replication_group。 GRANT <replication_group> TO <original_owner>; // 将迁移账号也添加至 replication_group。 GRANT <replication_group> TO <replication_user>; // 修改待迁移表的 Owner 为新创建的 replication_group。 ALTER TABLE <table_name> OWNER TO <replication_group>;
如果您在添加 PostgreSQL 数据源时,勾选了 增量同步时,允许 OMS 自动向该实例写入心跳数据,以解决源端在无业务写入场景下的高延时问题,OMS 社区版会向对应的 PostgreSQL 数据库创建并更新 oms_postgres_heartbeat 表。此时,PostgreSQL 数据库用户需要具备创建表、写表的权限。新建数据源详情请参见 新建 PostgreSQL 数据源。
赋予数据库用户创建表的权限
GRANT CREATE ON SCHEMA public TO '<user_name>';赋予数据库用户写表的权限
GRANT INSERT, UPDATE, DELETE ON oms_postgres_heartbeat TO '<user_name>';
Kafka 作为目标端的权限说明
如果 Kafka 存在鉴权,请参见 新建 Kafka 数据源。
Kafka 作为目标端时,同步用户需要具备进行以下操作的权限:
创建和查看 Topic
查看 Topic Partition 信息
写入 Record
读取 Record
RocketMQ 作为目标端的权限说明
RocketMQ 作为目标端时,同步用户需要具备进行以下操作的权限:
创建和查看 Topic
查看 Topic MessageQueue 信息
写入 Record
读取 Record