ORA-20024: 不允许为维护的模式启用 REST
ORA-20024: REST enablement for maintained schema disallowed
当我尝试启用架构时,我在没有 APEX 的 ORDS 中进行了设置,但出现错误。我做错了什么?
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);
commit;
END;
Error report -
ORA-20024: REST enablement for maintained schema disallowed : DEVUSER
ORA-06512: на "ORDS_METADATA.ORDS", line 183
ORA-06512: на "ORDS_METADATA.ORDS_INTERNAL", line 281
ORA-06512: на "ORDS_METADATA.ORDS_INTERNAL", line 688
ORA-06512: на "ORDS_METADATA.ORDS_INTERNAL", line 640
ORA-06512: на "ORDS_METADATA.ORDS_INTERNAL", line 779
ORA-06512: на "ORDS_METADATA.ORDS", line 167
ORA-06512: на line 3
最可能的原因是架构是作为 Oracle 维护用户创建的。无法为基于 ORDS 的 REST 服务启用 Oracle 维护用户。
为了更正此问题,您必须删除并重新创建目标架构。
1.To 删除用户:
alter session set "_ORACLE_SCRIPT"=true;
drop user DEVUSER;
alter session set "_ORACLE_SCRIPT"=false;
2.Recreate 用户:
create user DEVUSER identified by <PASSWORD>;
grant create session to <SCHEMA>;
执行此用户所需的任何其他授权。如果您有数据要保存,请先将其导出(例如使用 Datapump),然后再将其导入回来。
当我尝试启用架构时,我在没有 APEX 的 ORDS 中进行了设置,但出现错误。我做错了什么?
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);
commit;
END;
Error report -
ORA-20024: REST enablement for maintained schema disallowed : DEVUSER
ORA-06512: на "ORDS_METADATA.ORDS", line 183
ORA-06512: на "ORDS_METADATA.ORDS_INTERNAL", line 281
ORA-06512: на "ORDS_METADATA.ORDS_INTERNAL", line 688
ORA-06512: на "ORDS_METADATA.ORDS_INTERNAL", line 640
ORA-06512: на "ORDS_METADATA.ORDS_INTERNAL", line 779
ORA-06512: на "ORDS_METADATA.ORDS", line 167
ORA-06512: на line 3
最可能的原因是架构是作为 Oracle 维护用户创建的。无法为基于 ORDS 的 REST 服务启用 Oracle 维护用户。
为了更正此问题,您必须删除并重新创建目标架构。
1.To 删除用户:
alter session set "_ORACLE_SCRIPT"=true;
drop user DEVUSER;
alter session set "_ORACLE_SCRIPT"=false;
2.Recreate 用户:
create user DEVUSER identified by <PASSWORD>;
grant create session to <SCHEMA>;
执行此用户所需的任何其他授权。如果您有数据要保存,请先将其导出(例如使用 Datapump),然后再将其导入回来。