Я попытался создать рабочее пространство в 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.
У кого-нибудь есть опыт решения этой проблемы или указываете мне правильное направление?
Спасибо.