OceanBase迁移用户及其权限配置

OceanBase迁移用户及其权限配置

MySQL数据源

MySQL作为源端时

创建迁移用户并授权:

sql 复制代码
CREATE USER oms_src_user IDENTIFIED BY '******';

--假设要迁移的数据库是destdb
GRANT SELECT ON destdb.* TO 'oms_src_user'@'%';
GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'oms_src_user'@'%';
GRANT SELECT ON *.* TO 'oms_src_user'@'%';
GRANT SHOW VIEW ON destdb.* to 'oms_src_user'@'%';

--如果开启了反向增量
GRANT CREATE,SELECT,INSERT,UPDATE,DELETE ON destdb.* TO 'oms_src_user'@'%';

MySQL作为目标端时

创建迁移用户并授权:

sql 复制代码
CREATE USER oms_dst_user IDENTIFIED BY '******';

GRANT SELECT, CREATE, INSERT, UPDATE ON oms.* TO 'oms_dst_user'@'%';
GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'oms_dst_user'@'%';

--假设要迁移的数据库是destdb
GRANT CREATE,SELECT,INSERT,UPDATE,DELETE ON destdb.* TO 'oms_dst_user'@'%';
GRANT CREATE VIEW ON destdb.* TO 'oms_dst_user'@'%';
GRANT INDEX ON destdb.* TO 'oms_dst_user'@'%';
GRANT TRIGGER ON destdb.* TO 'oms_dst_user'@'%';

GRANT ALL PRIVILEGES ON destdb.* TO 'oms_dst_user'@'%';

Oracle数据源

Oracle数据库作为源端时的正向迁移和作为目标端时的反向回流需要的权限是一致的。

Oracle作为源端时

创建迁移用户并授权:

sql 复制代码
CREATE USER oms_src_user IDENTIFIED BY xxxxxx;

GRANT CONNECT TO oms_src_user;
GRANT CREATE SESSION, ALTER SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO oms_src_user;

GRANT LOGMINING TO oms_src_user;
GRANT EXECUTE ON SYS.DBMS_LOGMNR TO oms_src_user;
GRANT CREATE TABLE, UNLIMITED TABLESPACE TO oms_src_user;

GRANT CREATE ANY TABLE,CREATE ANY INDEX,DROP ANY TABLE,ALTER ANY TABLE,COMMENT ANY TABLE,
DROP ANY INDEX,ALTER ANY INDEX,CREATE ANY SEQUENCE,ALTER ANY SEQUENCE,DROP ANY SEQUENCE,
CREATE ANY VIEW,DROP ANY VIEW,INSERT ANY TABLE,DELETE ANY TABLE,UPDATE ANY TABLE TO oms_src_user;

GRANT CREATE ANY PROCEDURE TO oms_src_user;
GRANT CREATE ANY TYPE TO oms_src_user;
GRANT SELECT ANY SEQUENCE TO oms_src_user;
GRANT CREATE ANY TRIGGER TO oms_src_user;

Oracle作为目标端时

Oracle数据库作为目标端时,除根据不同版本赋予相应权限外,还需要具备CREATE ANY TRIGGER权限。

创建迁移用户并授权:

sql 复制代码
CREATE USER oms_dst_user IDENTIFIED BY xxxxxx;

GRANT CONNECT TO oms_dst_user;
GRANT CREATE SESSION, ALTER SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO oms_dst_user;

GRANT LOGMINING TO oms_dst_user;
GRANT EXECUTE ON SYS.DBMS_LOGMNR TO oms_dst_user;
GRANT CREATE TABLE, UNLIMITED TABLESPACE TO oms_dst_user;

GRANT CREATE ANY TABLE,CREATE ANY INDEX,DROP ANY TABLE,ALTER ANY TABLE,COMMENT ANY TABLE,
DROP ANY INDEX,ALTER ANY INDEX,CREATE ANY SEQUENCE,ALTER ANY SEQUENCE,DROP ANY SEQUENCE,
CREATE ANY VIEW,DROP ANY VIEW,INSERT ANY TABLE,DELETE ANY TABLE,UPDATE ANY TABLE TO oms_dst_user;

GRANT CREATE ANY PROCEDURE TO oms_dst_user;
GRANT CREATE ANY TYPE TO oms_dst_user;
GRANT SELECT ANY SEQUENCE TO oms_dst_user;
GRANT CREATE ANY TRIGGER TO oms_dst_user;

OceanBase MySQL数据源

OceanBase MySQL作为源端时

新建OceanBase数据库MySQL兼容模式数据源时,涉及OceanBase数据库用户、DRC用户(sys租户用户)和__oceanbase_inner_drc_user用户三种不同类型的用户,您可以根据实际需要进行创建。

  • 创建OceanBase用户:在MySQL租户中,创建OMS连接使用的迁移用户并授权。假设目标库为destdb
sql 复制代码
--业务租户下
CREATE USER oms_src_user IDENTIFIED BY 'xxxxxx';
GRANT SELECT ON oceanbase.* TO oms_src_user;

--假设要迁移的数据库是destdb
GRANT SELECT ON destdb.* TO oms_src_user;

--如果开启了反向增量
GRANT CREATE,SELECT,INSERT,UPDATE,DELETE ON destdb.* TO oms_src_user;
  • 创建DRC用户(可选)。

使用OceanBase数据源作为源端进行结构迁移、结构同步或增量同步时,以及使用OceanBase数据源作为目标端进行反向增量时,除了创建OceanBase数据库用户外,还需要在业务集群sys租户下创建DRC用户,以读取OceanBase数据库的增量日志数据和数据库对象结构信息。该用户用于新建OceanBase数据源(包括物理数据源和逻辑数据源)时填写高级选项中的DRC用户用户名。

sql 复制代码
--SYS租户下
CREATE USER <drc_user> IDENTIFIED BY 'xxxxxx';
GRANT SELECT ON *.* TO <drc_user> ;
  • 创建__oceanbase_inner_drc_user用户(可选)。

当需要迁移OceanBase数据库MySQL兼容模式的无唯一键表至目标端时,除了创建OceanBase数据库用户外,还需要在源端业务租户 下创建__oceanbase_inner_drc_user用户。该用户用于新建租户类型为MySQL的OceanBase数据源时,填写__oceanbase_inner_drc_user密码。

sql 复制代码
--业务租户下
CREATE USER __oceanbase_inner_drc_user IDENTIFIED BY 'xxxxxx';
GRANT SELECT ON *.* TO __oceanbase_inner_drc_user;

OceanBase MySQL作为目标端时

新建OceanBase数据库MySQL兼容模式数据源时,涉及OceanBase数据库用户、DRC用户(sys租户用户)和__oceanbase_inner_drc_user用户三种不同类型的用户,您可以根据实际需要进行创建。

  • 创建OceanBase用户:在MySQL租户中,创建OMS连接使用的迁移用户并授权。假设目标库为destdb
sql 复制代码
--业务租户下
CREATE USER oms_dst_user IDENTIFIED BY 'xxxxxx';
GRANT SELECT ON *.* TO oms_dst_user;

--假设要迁移的数据库是destdb
GRANT CREATE,CREATE VIEW,SELECT,INSERT,UPDATE,ALTER,INDEX,DELETE ON destdb.* TO oms_dst_user;
GRANT TRIGGER,REFERENCES ON destdb.* TO oms_dst_user;

GRANT ALL PRIVILEGES ON destdb.* TO oms_dst_user;
  • 创建DRC用户(可选)。

使用OceanBase数据源作为源端进行结构迁移、结构同步或增量同步时,以及使用OceanBase数据源作为目标端进行反向增量时,除了创建OceanBase数据库用户外,还需要在业务集群sys租户下创建DRC用户,以读取OceanBase数据库的增量日志数据和数据库对象结构信息。该用户用于新建OceanBase数据源(包括物理数据源和逻辑数据源)时填写高级选项中的DRC用户用户名。

sql 复制代码
--SYS租户下
CREATE USER <drc_user> IDENTIFIED BY 'xxxxxx';
GRANT SELECT ON *.* TO <drc_user> ;
  • 创建__oceanbase_inner_drc_user用户(可选)。

当需要迁移OceanBase数据库MySQL兼容模式的无唯一键表至目标端时,除了创建OceanBase数据库用户外,还需要在源端业务租户 下创建__oceanbase_inner_drc_user用户。该用户用于新建租户类型为MySQL的OceanBase数据源时,填写__oceanbase_inner_drc_user密码。

sql 复制代码
--业务租户下
CREATE USER __oceanbase_inner_drc_user IDENTIFIED BY 'xxxxxx';
GRANT SELECT ON *.* TO __oceanbase_inner_drc_user;

OceanBase Oracle数据源

OceanBase Oracle作为源端时

新建OceanBase数据库Oracle兼容模式数据源时,涉及OceanBase数据库用户、DRC用户(sys租户用户)和__OCEANBASE_INNER_DRC_USER用户三种不同类型的用户,可以根据实际需要进行创建。

  • OceanBase数据库用户(必选):该用户为必选用户,用于进行源端和目标端之间的数据迁移或数据同步。
sql 复制代码
--业务租户下
CREATE USER oms_src_user IDENTIFIED BY xxxxxx;

GRANT CONNECT TO oms_src_user;
GRANT DBA TO oms_src_user;

GRANT SELECT ON DBA_OB_ARCHIVELOG TO oms_src_user;
GRANT SELECT ON DBA_OB_TABLE_LOCATIONS TO oms_src_user;
  • DRC用户(可选):该用户为可选用户,用于读取OceanBase数据库的增量日志数据和数据库对象结构信息。如果作为源端时,需要进行结构迁移、结构同步或增量同步,请在源端sys租户下创建DRC用户。如果作为目标端时,需要进行反向增量,请在目标端sys租户下创建DRC用户。
sql 复制代码
--SYS租户下
CREATE USER <drc_user> IDENTIFIED BY '******';
GRANT SELECT ON *.* TO <drc_user>;
  • __OCEANBASE_INNER_DRC_USER用户(可选):该用户为可选用户,仅在需要迁移无唯一键表时创建。

当需要迁移OceanBase数据库Oracle兼容模式的无唯一键表至目标端时,除了创建OceanBase数据库用户外,还需要在源端业务租户 下创建__OCEANBASE_INNER_DRC_USER用户。该用户用于新建租户类型为Oracle的OceanBase数据源时,填写__OCEANBASE_INNER_DRC_USER密码。

sql 复制代码
--业务租户下
CREATE USER '__OCEANBASE_INNER_DRC_USER' IDENTIFIED BY ******;

GRANT CREATE SESSION TO '__OCEANBASE_INNER_DRC_USER';
GRANT SELECT ANY DICTIONARY TO '__OCEANBASE_INNER_DRC_USER';
GRANT SELECT ANY TABLE TO '__OCEANBASE_INNER_DRC_USER';

OceanBase Oracle作为目标端时

新建OceanBase数据库Oracle兼容模式数据源时,涉及OceanBase数据库用户、DRC用户(sys租户用户)和__OCEANBASE_INNER_DRC_USER用户三种不同类型的用户,可以根据实际需要进行创建。

  • OceanBase数据库用户(必选):该用户为必选用户,用于进行源端和目标端之间的数据迁移或数据同步。
sql 复制代码
--业务租户下
CREATE USER oms_dst_user IDENTIFIED BY xxxxxx;

GRANT CONNECT TO oms_dst_user;
GRANT CREATE SESSION, ALTER SESSION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO oms_dst_user;
GRANT CREATE ANY TABLE, CREATE ANY INDEX, CREATE ANY VIEW, INSERT ANY TABLE, UPDATE ANY TABLE, ALTER ANY TABLE, DELETE ANY TABLE TO oms_dst_user;

GRANT CREATE ANY PROCEDURE TO oms_dst_user;
GRANT CREATE ANY SYNONYM TO oms_dst_user;
GRANT CREATE ANY SEQUENCE TO oms_dst_user;
GRANT CREATE ANY TRIGGER TO oms_dst_user;
GRANT CREATE ANY TYPE TO oms_dst_user;
  • DRC用户(可选):该用户为可选用户,用于读取OceanBase数据库的增量日志数据和数据库对象结构信息。如果作为源端时,需要进行结构迁移、结构同步或增量同步,请在源端sys租户下创建DRC用户。如果作为目标端时,需要进行反向增量,请在目标端sys租户下创建DRC用户。
sql 复制代码
--SYS租户下
CREATE USER <drc_user> IDENTIFIED BY '******';
GRANT SELECT ON *.* TO <drc_user>;
  • __OCEANBASE_INNER_DRC_USER用户(可选):该用户为可选用户,仅在需要迁移无唯一键表时创建。

当需要迁移OceanBase数据库Oracle兼容模式的无唯一键表至目标端时,除了创建OceanBase数据库用户外,还需要在源端业务租户 下创建__OCEANBASE_INNER_DRC_USER用户。该用户用于新建租户类型为Oracle的OceanBase数据源时,填写__OCEANBASE_INNER_DRC_USER密码。

sql 复制代码
--业务租户下
CREATE USER '__OCEANBASE_INNER_DRC_USER' IDENTIFIED BY ******;

GRANT CREATE SESSION TO '__OCEANBASE_INNER_DRC_USER';
GRANT SELECT ANY DICTIONARY TO '__OCEANBASE_INNER_DRC_USER';
GRANT SELECT ANY TABLE TO '__OCEANBASE_INNER_DRC_USER';

References

【1】https://www.oceanbase.com/docs/enterprise-oms-doc-cn-1000000004023066

相关推荐
SelectDB3 小时前
阶跃星辰基于 SelectDB 构建 PB 级 Agent 可观测平台
大数据·数据库·aigc
这个DBA有点耶4 小时前
GROUP BY优化全解:如何写出既不丢数据又飞快的分组查询
数据库·mysql·架构
掉头发的王富贵7 小时前
【StarRocks】极限十分钟入门StarRocks
数据库·sql·mysql
Nturmoils8 小时前
WHERE 条件别凭习惯写,常用查询先跑一遍
数据库
Databend1 天前
在 AWS 中国峰会逛了一天,我在 Databend 展台看到了 Agent 数据基础设施的新思路
数据库·人工智能·agent
ClouGence2 天前
Oracle 数据同步为什么会出现数据不一致?长事务是常被忽略的原因
数据库·后端·oracle
飞将2 天前
从零实现数据库(2)——HashIndex + IndexManager
数据库
Nturmoils3 天前
订单列表慢查询,先看 WHERE、ORDER BY 和 LIMIT
数据库
渣波3 天前
拒绝 SQL 焦虑!手把手带你用 NestJS + Prisma + DTO 写出“防弹”级后端代码
javascript·数据库·后端
倔强的石头_5 天前
KingbaseES 新版MySQL 兼容版体验:旧版迁移 + 功能实测
数据库