OceanBase迁移用户及其权限配置
- MySQL数据源
- Oracle数据源
- [OceanBase MySQL数据源](#OceanBase MySQL数据源)
-
- [OceanBase MySQL作为源端时](#OceanBase MySQL作为源端时)
- [OceanBase MySQL作为目标端时](#OceanBase MySQL作为目标端时)
- [OceanBase Oracle数据源](#OceanBase Oracle数据源)
-
- [OceanBase Oracle作为源端时](#OceanBase Oracle作为源端时)
- [OceanBase Oracle作为目标端时](#OceanBase Oracle作为目标端时)
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