В Oracle 11g какие разрешения мне понадобятся для "SELECT * FROM V $ TRANSPORTABLE_PLATFORM;`? - PullRequest
1 голос
/ 01 декабря 2019

Я использую AWS DMS для переноса локальной базы данных Oracle 11g в экземпляр Amazon RDS для Oracle DB той же основной версии. Недавно я получил эту ошибку:

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; без проблем, однако моя новая схема «миграции» не может. Оба имеют привилегии SELECT ANY TABLE, которые, как описано в Предоставить выбор для всех VIEWS [текущий и будущий] в схеме X , позволят пользователю запрашивать любую таблицу или представление в любой схеме в базе данных.

Какое разрешение мне не хватает в моей схеме миграции? Чем V$TRANSPORTABLE_PLATFORM отличается от объектов таблицы / представления в базе данных? Какой запрос можно выполнить, чтобы получить тип V$TRANSPORTABLE_PLATFORM или любой другой объект базы данных?

1 Ответ

0 голосов
/ 01 декабря 2019

Несколько вещей, которые вы можете попробовать:

  • Предоставить SELECT_CATALOG_ROLE, чтобы разрешить SELECT для системных представлений
  • Добавить ручной GRANT к V_$TRANSPORTABLE_PLATFORM, поскольку V$TRANSPORTABLE_PLATFORM будетссылка на эту таблицу
  • Убедитесь, что схема не является неоднозначной, добавив SYS.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...