Привилегии пользователя исходной базы данных Oracle

Конвертум Мастер использует операторы SELECT к таблицам и представлениям all_*, dba_* и sys.*, чтобы извлечь информацию об исходном DDL для всех объектов, которые необходимо преобразовать. Таким образом, для экспорта объектов Oracle необходимы следующие привилегии:

  • CREATE SESSION
  • SELECT ANY TABLE
  • GRANT SELECT ON sys.procedure$
  • GRANT SELECT ON dba_users
  • GRANT SELECT ON dba_part_key_columns
  • GRANT SELECT ON dba_synonyms
  • GRANT ALL [PRIVILEGES] ON OWNER.OBJECT_NAME for each object that needs to be migrated

Вы можете поместить оператор SELECT в LOOP с помощью EXECUTE IMMEDIATE, который будет генерировать полномочия для объектов.

BEGIN
        FOR cur IN (SELECT object_type, 'grant all on '||owner||'.'||object_name||' to <YOUR_USER_NAME>' as exec_stmt FROM all_objects
                    WHERE object_type NOT IN ('INDEX','LOB','TABLE PARTITION','CLUSTER','CONSUMER GROUP','CONTEXT','DESTINATION','DIRECTORY',
                                              'EDITION','EVALUATION CONTEXT','JAVA CLASS','INDEX PARTITION','JOB','JOB CLASS','JAVA DATA',
                                              'JAVA RESOURCE','XML SCHEMA','LIBRARY','LOB PARTITION','OPERATOR','WINDOW')
                    AND owner IN ('<YOUR_LIST_OF_SCHEMA_NAMES>')
                    ) LOOP
           EXECUTE IMMEDIATE cur.exec_stmt;
        END LOOP;
     END;

Или можно инициировать GRANT DBA TO user_name.
Минимальные привилегии, необходимые для сбора информации о DDL-объектах:

  • GRANT CREATE SESSION TO YOUR_ORACLE_USER;
  • GRANT SELECT ANY DICTIONARY TO YOUR_ORACLE_USER;

В этом случае необходимо выбрать опцию "DBA" на странице "Исходные параметры". Чтобы выбрать опцию "DBA", нажмите кнопку "Ещё…":

privileges


Если у вас есть другие вопросы, пожалуйста, свяжитесь с нами: support@convertum.ru