APEX 无法分配 SH 用户?一个存储过程轻松解决

在 Oracle APEX 日常开发中,笔者习惯使用 Object Browser 对不同 Schema 进行管理。最近为了测试同事开发的本体构建平台,笔者导入了 Oracle 自带的 SH 用户来模拟业务数据,却在分配 Schema 时遇到了一个"怪问题"。

01 | 问题现象:下拉列表里找不到 SH

在 APEX 管理后台,通过 Manage Workspaces -> Manage Workspace to Schema Assignments -> Add Schema 为工作区分配已存在的 Schema 时,候选下拉列表中竟然找不到 SH 用户。

明明 SH 是数据库里真实存在的用户,为何在 APEX 的分配界面中"隐身"了?这并非 APEX 的 Bug,而是其默认的安全机制在起作用。

02 | 原因与解法:注册 Schema 例外

APEX 出于安全考虑,默认只允许工作区访问部分受控 Schema。对于 SH 这类未在 APEX 中显式注册的用户,需要由管理员手动将其加入"例外名单"。

解决方案是使用 SYS 用户执行 APEX_INSTANCE_ADMIN.CREATE_SCHEMA_EXCEPTION 存储过程,将 SH 用户与目标工作区(例如 WS_ALFRED)进行绑定:

sql 复制代码
SQL> show user
USER is "SYS"
SQL> BEGIN
  2      APEX_INSTANCE_ADMIN.CREATE_SCHEMA_EXCEPTION(
  3          p_schema    => 'SH',
  4          p_workspace => 'WS_ALFRED'
  5      );
  6      COMMIT;
  7  END;
  8* /

PL/SQL procedure successfully completed.

执行成功后,再次回到 Add Schema 页面,SH 用户就会出现在候选列表中,可以正常勾选并添加:

添加完成后,笔者就能在 Object Browser 中愉快地访问和管理 SH 下的业务数据了:

小结

当 APEX 默认无法为工作区分配某个数据库用户时,不必怀疑环境配置。通过 APEX_INSTANCE_ADMIN.CREATE_SCHEMA_EXCEPTION 存储过程将该 Schema 加入例外,即可快速解决问题。这一操作对管理员来说简单高效,但需注意它属于例外授权,应谨慎使用。

关注我,和AI一起成长~

相关推荐
AlfredZhao5 天前
人工清理问题数据:先查准,再删除
apex
AlfredZhao4 个月前
APEX实战第13篇:全套开发环境的本地配置与恢复实践
oracle·apex·ords
ONE_SIX_MIX5 个月前
最先进llama.cpp量化方法PK,APEX vs UD_XL,在 Qwen3.6-35B-A3B 中爆发! 2026年4月
apex·llama·量化·unsloth
大熊背7 个月前
APEX系统中为什么 不用与EV0的差值计算曝光参数调整量
人工智能·算法·apex·自动曝光
大熊背7 个月前
场景亮度到APEX测光系统全链接通路解析(一)
数码相机·apex·自动曝光
大熊背7 个月前
场景亮度到APEX测光系统全链接通路解析(二)
数码相机·apex·自动曝光·isppipeline
大熊背7 个月前
APEX自动曝光调整逻辑
apex·自动曝光·isp pipeline
AlfredZhao7 个月前
APEX实战第12篇:Oracle APEX 工作区密码忘记了怎么办?
apex
AlfredZhao8 个月前
APEX实战第11篇:图形界面轻松解锁工作区账户
apex