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

相关推荐
坚定信念,勇往无前4 小时前
mongodb的日志分割
数据库·mongodb
oradh7 小时前
Oracle TX 锁 Mode 4(Share)问题排查总结
数据库·oracle·tx 锁 mode 4·oracle tx 锁
yi.Ist8 小时前
数据定义语言-DDL操作
数据库·学习·mysql·oracle·大海豚
2601_963282779 小时前
工程项目、政企采购为什么优先选择对讲机批量采购?
数据库
Doraemomo9 小时前
SQLite数据库
数据库·sqlite
云贝教育-郑老师10 小时前
MySQL 的“黑匣子“:Performance Schema 把数据库内部变成一张可查的表
数据库·mysql
这个DBA有点耶12 小时前
同城双活落地的三座山:网络延迟、脑裂预防、反向同步
数据库·架构·dba
青春之我_XP12 小时前
MySQL 常用日期函数 实战指南
数据库·sql·mysql·数据分析·数据库开发·日期函数
Nturmoils12 小时前
sys_dump 备了库,角色和权限别漏在外面
数据库