Oracle Apex 19.2: не удается решить проблему «схема зарезервирована или ограничена» - PullRequest
1 голос
/ 22 апреля 2020

Я попытался создать рабочее пространство в APEX, используя существующую схему с именем PEOPLE , и он выдал сообщение об ошибке "Схема зарезервирована или ограничена" . Я пытался использовать другие существующие схемы, которые я создал, и все они работали нормально.

Ниже приведены технические характеристики / условия среды:

База данных: Oracle 19 c EE установлена ​​на локальном компьютере.
Apex: 19.2 установлен как встроенный шлюз на локальном компьютере.

Создана подключаемая база данных с именем PDB1 .
Создано табличное пространство PEOPLE_TAB с использованием OMF (Oracle Управляемые файлы ) синтаксис.
Создан локальный пользователь PEOPLE в PDB1 .

дал PEOPLE следующие роли и привилегии (I ' я знаю, что некоторые дублируются, как роль RESOURCE и CREATE SESSION priv):

RESOURCE
UNLIMITED TABLESPACE
SELECT_CATALOG_ROLE
CREATE SESSION
CREATE TABLE
CREATE TYPE
CREATE CLUSTER
CREATE TRIGGER
CREATE PROCEDURE
CREATE SEQUENCE
CREATE VIEW
CREATE DIMENSION
CREATE JOB
CREATE SYNONYM 
CREATE DIMENSION
CREATE MATERIALIZED VIEW

Я создал другого пользователя TEST1 в том же табличном пространстве PEOPLE_TAB с тем же privs as PEOPLE и заново создал объекты и данные. Я мог бы успешно создать рабочую область, используя эту новую схему!

Обходил в Интернете, но большинство статей и постов относятся к более старым версиям APEX, но я все еще пробовал следующее.

Я последовал совету приведено в Oracle документах, приложении Express, выпуск 19.2, руководство по администрированию, раздел 2.13

Схема механизма APEX для APEX 19.2 - APEX_190200 . Поэтому я разблокировал APEX_190200 и вошел в систему (после смены пароля) для выполнения проверок.

-- Checked if PEOPLE was a restricted schema
SELECT schema FROM APEX_190200.wwv_flow_restricted_schemas order by schema;

PEOPLE не указан в списке, и я предполагаю, что он не ограничен. Поэтому я попытался ограничить PEOPLE в любом случае, как подробно описано в документации.

-- ran from APEX_190200
EXEC APEX_INSTANCE_ADMIN.UNRESTRICT_SCHEMA(p_schema => 'PEOPLE');
COMMIT;

Успешно запустился, но не решил проблему.

Поиск в Интернете большую часть информация устарела, но в любом случае была предпринята попытка.

-- ran from APEX_190200
EXEC APEX_SITE_ADMIN_PRIVS.UNRESTRICT_SCHEMA(p_schema => 'PEOPLE');
COMMIT;

Вышеуказанное не выполнялось и жаловалось, что пакет не существует. Я проверил, что при поиске APEX_SITE_ADMIN_PRIVS в user_objects - его там не было.

В некоторые годы go была ошибка с функцией wwv_flow_provision.IS_RESERVED, но я проверил это и это побежал нормально, возвращая FALSE для PEOPLE и TRUE для зарезервированных слов, таких как VARCHAR.

Это действительно сбило меня с толку, когда я могу создать идентичного пользователя (другое имя) с идентичными привилегиями, объектами и данными, которые были созданы в том же табличном пространстве, и он прекрасно работал с рабочей областью APEX.

У кого-нибудь есть опыт решения этой проблемы или указываете мне правильное направление?

Спасибо.

1 Ответ

0 голосов
/ 27 апреля 2020

Увлекательный выпуск. Ограниченная схема жестко запрограммирована в коде обеспечения APEX. Это очень старая проблема.

Мы можем попытаться исправить это в следующем выпуске APEX, но это вам сейчас не поможет. Если вы подадите запрос на обслуживание для поддержки Oracle, я позабочусь о том, чтобы вы исправили эту проблему (при условии, что вы используете поддерживаемую версию APEX).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...