在 Oracle 11g 中,`SELECT * FROM V$TRANSPORTABLE_PLATFORM;` 需要什么权限?

In Oracle 11g, what permissions would I need to `SELECT * FROM V$TRANSPORTABLE_PLATFORM;`?

我正在使用 AWS DMS 将现场 Oracle 11g 数据库迁移到相同主要版本的 Amazon RDS for Oracle 数据库实例。我最近收到此错误:

2019-11-27T18:54:08 [SOURCE_CAPTURE ]E: Cannot execute SQL statement 'select tp.endian_format, tp.platform_name from v$database d, v$transportable_platform tp where d.platform_id = tp.platform_id'. OCI status '-1' [1020401] (oradcdc_redoutil.c:976)
2019-11-27T18:54:08 [TASK_MANAGER ]E: OCI error 'ORA-00942: table or view does not exist'; Cannot execute SQL statement 'select tp.endian_format, tp.platform_name from v$database d, v$transportable_platform tp where d.platform_id = tp.platform_id'. OCI status '-1'; Error executing source loop; Stream component failed at subtask 0, component st_0_XGQVEPQ6RSAXZT44XOZF7ERABI ; Stream component 's

我的正常管理模式可以 SELECT * FROM V$TRANSPORTABLE_PLATFORM; 没有问题,但是,我的新 'migration' 模式不能。两者都具有 SELECT ANY TABLE 权限,如 Grant Select on All VIEWS [current and future] in Schema X 中所述,将允许用户查询任何 table 或在数据库中的任何模式中查看。

我的迁移模式中缺少什么权限? V$TRANSPORTABLE_PLATFORM 与数据库中的 table/view 对象有何不同?为了获得 V$TRANSPORTABLE_PLATFORM 或任何其他数据库对象的类型,我可以 运行 进行什么查询?

您可能想尝试的一些事情:

  • 授予 SELECT_CATALOG_ROLE 以允许 SELECT 系统视图
  • V_$TRANSPORTABLE_PLATFORM 添加手动 GRANT,因为 V$TRANSPORTABLE_PLATFORM 将引用 table
  • 通过添加 SYS.
  • 来确保架构没有歧义