#数据源管理
# 添加数据源

添加数据源所需字段说明:
| 字段 | 是否必填 | 说明 |
|---|---|---|
| 数据源名称 | 是 | 系统内唯一数据源名称 |
| 数据源类型 | 是 | 支持选择Oracle、MySQL、YashanDB、DM |
| 主机IP | 是 | 数据库所在IP地址 |
| 端口 | 是 | 数据库监听端口 |
| 数据库 | 否 | Oracle必填、MySQL、DM、YashanDB选填 |
| 用户名 | 是 | 数据库连接用户(连接用户需要有迁移平台所需权限,所需权限详见:数据源权限配置) |
| 密码 | 是 | 数据库连接用户的密码 |
在添加数据源时,会首先测试数据库连接,只有连接成功才可以添加成功。
如果连接失败则会根据失败原因提示相对应的失败消息,例如用户名或密码错误等。
在添加数据源时会同步获取数据源的版本和连接信息。
注意
- DM数据库暂时只支持DM8版本,且只支持原生模式(0)和MySQL模式(4),其余模式虽然可以添加数据源,但可能存在适配问题。
# 数据源权限配置
# 源端
| 数据源 | 迁移平台所需权限 |
|---|---|
| Oracle | 跨用户评估迁移权限: GRANT CREATE SESSION TO username; |
| GRANT SELECT_CATALOG_ROLE TO username; | |
| GRANT SELECT ANY TABLE TO username;(建议权限,不强制要求,可被迁移表的SELECT ON权限替换) | |
| GRANT SELECT ANY SEQUENCE TO username;(建议权限,不强制要求,可被迁移序列的SELECT ON权限替换) | |
| 仅本连接用户元数据评估迁移所需权限: GRANT CREATE SESSION TO username; | |
| GRANT SELECT ON DBA_SEGMENTS TO username; | |
| GRANT SELECT ON DBA_LOBS TO username; | |
| GRANT SELECT ON DBA_TAB_COLS TO username; | |
| GRANT SELECT ON DBA_ROLES TO username; | |
| GRANT SELECT ON DBA_DATA_FILES TO username; | |
| GRANT SELECT ON V_$PARAMETER TO username; | |
| GRANT SELECT ON DBA_TABLES TO username; | |
| GRANT SELECT ON DBA_INDEXES TO username; | |
| GRANT SELECT ON DBA_TAB_PARTITIONS TO username; | |
| GRANT SELECT ON V_$TABLESPACE TO username; | |
| GRANT SELECT ON V_$SESSION TO username; | |
| GRANT SELECT ON DBA_SOURCE TO username; | |
| GRANT SELECT ON DBA_VIEWS TO username; | |
| GRANT SELECT ON DBA_SEQUENCES TO username; | |
| GRANT SELECT ON DBA_SYNONYMS TO username; | |
| GRANT SELECT ON DBA_DEPENDENCIES TO username; | |
| GRANT SELECT ON DBA_OBJECTS TO username; | |
| GRANT SELECT ON DBA_TYPES TO username; | |
| GRANT SELECT ON DBA_TAB_COMMENTS TO username; | |
| GRANT SELECT ON DBA_COL_COMMENTS TO username; | |
| GRANT SELECT ON DBA_SCHEDULER_JOBS TO username; | |
| GRANT SELECT ON DBA_CONSTRAINTS TO username; | |
| GRANT SELECT ON DBA_CONS_COLUMNS TO username; | |
| GRANT SELECT ANY TABLE TO username;(建议权限,不强制要求,可被迁移表的SELECT ON权限替换) | |
| GRANT SELECT ANY SEQUENCE TO username;(建议权限,不强制要求,可被迁移序列的SELECT ON权限替换) | |
| 跳过评估所需权限: GRANT CREATE SESSION TO username; | |
| GRANT SELECT ON DBA_SEGMENTS TO username; | |
| GRANT SELECT ON DBA_LOBS TO username; | |
| GRANT SELECT ON DBA_TAB_COLS TO username; | |
| GRANT SELECT ON DBA_CONSTRAINTS TO username; | |
| GRANT SELECT ON DBA_CONS_COLUMNS TO username; | |
| GRANT SELECT ON DBA_DATA_FILES TO username; | |
| GRANT SELECT ON DBA_INDEXES TO username; | |
| GRANT SELECT ON DBA_DEPENDENCIES TO username; | |
| GRANT SELECT ON DBA_TYPES TO username; | |
| GRANT SELECT ON DBA_OBJECTS TO username; | |
| GRANT SELECT ON DBA_SCHEDULER_JOBS TO username; | |
| GRANT SELECT ON V_$PARAMETER TO username; | |
| GRANT SELECT ON V_$SESSION TO username; | |
| GRANT SELECT ANY TABLE TO username;(建议权限,不强制要求,可被迁移表的SELECT ON权限替换) | |
| GRANT SELECT ANY SEQUENCE TO username;(建议权限,不强制要求,可被迁移序列的SELECT ON权限替换) | |
| MySQL5.6.* MySQL5.7.* | GRANT SELECT, PROCESS, SHOW VIEW, SHOW DATABASES, TRIGGER ON *.* TO 'yourUser'@'IP'; |
| MySQL8.0.* | GRANT SELECT, PROCESS, SHOW VIEW, SHOW DATABASES, TRIGGER, SHOW_ROUTINE ON *.* TO 'yourUser'@'IP'; |
| DM8 | 评估所需权限: GRANT CREATE SESSION TO username; |
| GRANT SELECT ON V$PARAMETER TO username; | |
| GRANT SELECT ON DBA_OBJECTS TO username; | |
| GRANT SELECT ON DBA_INDEXES TO username; | |
| GRANT SELECT ON DBA_TAB_COLS TO username; | |
| GRANT SELECT ON DBA_CONSTRAINTS TO username; | |
| GRANT SELECT ON DBA_TAB_COMMENTS TO username; | |
| GRANT SELECT ON DBA_COL_COMMENTS TO username; | |
| GRANT SELECT ON DBA_SEGMENTS TO username; | |
| GRANT SELECT ON DBA_TAB_PARTITIONS TO username; | |
| GRANT SELECT ON DBA_TABLES TO username; | |
| GRANT SELECT ON DBA_VIEWS TO username; | |
| GRANT SELECT ON DBA_CONS_COLUMNS TO username; | |
| GRANT SELECT ON DBA_DATA_FILES TO username; | |
| GRANT SELECT ANY SEQUENCE TO username;(建议权限,不强制要求,可被迁移序列的SELECT ON权限替换) | |
| GRANT SELECT ANY TABLE TO username;(建议权限,不强制要求,可被迁移表的SELECT ON权限替换) | |
| 跳过评估所需权限: GRANT CREATE SESSION TO username; | |
| GRANT SELECT ON DBA_OBJECTS TO username; | |
| GRANT SELECT ON DBA_INDEXES TO username; | |
| GRANT SELECT ON DBA_CONSTRAINTS TO username; | |
| GRANT SELECT ON DBA_TAB_COLS TO username; | |
| GRANT SELECT ON DBA_SEGMENTS TO username; | |
| GRANT SELECT ON DBA_CONS_COLUMNS TO username; | |
| GRANT SELECT ON DBA_DATA_FILES TO username; | |
| GRANT SELECT ANY SEQUENCE TO username;(建议权限,不强制要求,可被迁移序列的SELECT ON权限替换) | |
| GRANT SELECT ANY TABLE TO username;(建议权限,不强制要求,可被迁移表的SELECT ON权限替换) |
Note: Oracle 11.2.0.1版本 如果提示查询用户信息失败,则需要用sys给数据源用户赋权,执行:
exec dbms_metadata_util.load_stylesheets。Mysql授权的yourUser和yourIp为创建用户时指定的用户信息,参考
CREATE USER 'newUser'@'IP' IDENTIFIED BY 'password',此时yourUser=newUser,IP=%或者xx.xx.xx.xx。
# 目标端
| 数据源 | 迁移平台所需权限 |
|---|---|
| YashanDB | GRANT DBA TO username; |
| YashanDB(三权分立模式) | GRANT DBA TO username; |
| GRANT CREATE USER TO username; | |
| GRANT CREATE ANY TABLE TO username; | |
| GRANT DROP ANY TABLE TO username; | |
| GRANT ALTER ANY TABLE TO username; | |
| GRANT COMMENT ANY TABLE TO username; | |
| GRANT CREATE ANY SEQUENCE TO username; | |
| GRANT DROP ANY SEQUENCE TO username; | |
| GRANT SELECT ANY SEQUENCE TO username; | |
| GRANT CREATE ANY INDEX TO username; | |
| GRANT ALTER ANY INDEX TO username; | |
| GRANT DROP ANY INDEX TO username; | |
| GRANT CREATE ANY SYNONYM TO username; | |
| GRANT CREATE PUBLIC SYNONYM TO username; | |
| GRANT DROP ANY SYNONYM TO username; | |
| GRANT DROP PUBLIC SYNONYM TO username; | |
| GRANT CREATE ANY VIEW TO username; | |
| GRANT DROP ANY VIEW TO username; | |
| GRANT CREATE ANY TYPE TO username; | |
| GRANT DROP ANY TYPE TO username; | |
| GRANT CREATE ANY PROCEDURE TO username; | |
| GRANT DROP ANY PROCEDURE TO username; | |
| GRANT CREATE ANY TRIGGER TO username; | |
| GRANT DROP ANY TRIGGER TO username; | |
| GRANT ALTER ANY TRIGGER TO username; | |
| GRANT CREATE ANY MATERIALIZED VIEW TO username; | |
| GRANT DROP ANY MATERIALIZED VIEW TO username; | |
| GRANT SELECT ANY TABLE TO username; | |
| GRANT INSERT ANY TABLE TO username; |
# 修改数据源
支持修改数据源的配置信息,修改数据源时会校验该数据源是否与迁移和评估的任务关联。
数据源未关联任务时,允许修改IP、端口号、数据库名称、数据库用户名和数据库密码,否则则只允许修改数据库密码。
数据源添加后名称和类型不允许修改,修改其它信息也只有测试连接通过才会修改成功。


# 删除数据源
删除数据源时会校验该数据源是否与迁移和评估的任务关联,如果关联则不允许删除。

