ORA-20024报错:无APEX的ORDS环境启用REST schema失败如何处理
ORA-20024报错原因及解决方案
核心问题原因
你遇到的ORA-20024: REST enablement for maintained schema disallowed错误是ORDS自身的schema安全保护机制触发的,和环境是否搭载APEX没有直接关联。
ORDS默认内置了受保护的系统维护类schema列表,不允许普通方式启用REST服务,你的DEVUSER被判定为受保护schema,常见触发场景有两类:
- 你执行
ORDS.ENABLE_SCHEMA时使用SYS、SYSTEM等管理员会话操作,但没有显式传入跳过校验的参数 DEVUSER被登记到了ORDS的内部受保护schema列表中,比如该schema曾被关联过APEX组件、或是ORDS安装时被标记为内部维护 schema
解决方案
方案1:追加跳过校验参数
管理员账号执行启用脚本时,在原有参数中追加p_schema_override => TRUE即可跳过受保护schema校验,修改后的PL/SQL脚本如下:
BEGIN ORDS.ENABLE_SCHEMA(p_enabled => TRUE, p_schema => 'DEVUSER', p_url_mapping_type => 'BASE_PATH', p_url_mapping_pattern => 'devuser', p_auto_rest_auth => FALSE, p_schema_override => TRUE); commit; END; /
注意:仅确认目标schema为业务schema、不会影响ORDS正常运行时,再使用该参数
方案2:清理受保护列表记录
如果追加参数后仍然触发同样报错,说明DEVUSER确实在ORDS的内部受保护列表中,先执行如下SQL查询确认:
SELECT * FROM ORDS_METADATA.ORDS_PROTECTED_USERS WHERE USERNAME = 'DEVUSER';
如果查询有返回结果,确认该schema没有被ORDS、APEX内部使用的前提下,删除对应记录后再执行REST启用脚本即可。
内容的提问来源于stack exchange,提问作者Andrey Gorelov
相关产品推荐
相关产品推荐

