【发布时间】:2017-07-31 18:46:03
【问题描述】:
背景
我正在使用 Oracle Apex 为位于其自己的架构PS 中的第 3 方 SIS(学生信息系统)PowerSchool 生成报告。
在 PS 中,我已将关键业务逻辑抽象为单个自定义包中的自定义函数集合 - CKSD_Students。
问题
在尝试从 APEX 中访问这些功能。以以下单个查询为例:
Select S.ID As Student_ID
, S.Student_Number As Student_Number
, S.LastFirst As LastFirst
, ps.cksd_student.get_student_enroll_status(S.Enroll_Status)
As Enroll_Status
, S.Grade_Level As Grade_Level
, S.SchoolID As SchoolID
, Sch.Name As School_Name
From Students S
Inner Join Schools Sch
On Sch.School_Number = S.SchoolID
来自 SQL Workshop,PS_Apex 架构中的 SQL 命令窗口,此查询执行良好。
在应用程序生成器中,当我创建测试报告并将此查询用于内容正文查询时:
- 查询编译(验证)没有错误。
-
运行时(蓝色开始箭头)出现以下错误:
Technical Info (only visible for developers) • is_internal_error: true • apex_error_code: APEX.AUTHORIZATION.ACCESS_DENIED • component.type: APEX_APPLICATION_AUTHORIZATION • component.id: 8270293315071117 • component.name: User still logged into PowerSchool • error_backtrace: • ----- PL/SQL Call Stack ----- • object line object • handle number name • 00007FFCA77EF398 642 package body APEX_050000.WWV_FLOW_ERROR • 00007FFCA77EF398 710 package body APEX_050000.WWV_FLOW_ERROR • 00007FFCA77EF398 1014 package body APEX_050000.WWV_FLOW_ERROR • 00007FFCC10C9B30 793 package body APEX_050000.WWV_FLOW_AUTHORIZATION • 00007FFCBE34C0A0 4518 package body APEX_050000.WWV_FLOW • 00007FFCA89F3C28 173 procedure APEX_050000.F • 00007FFCA0EA4800 2 anonymous block
这个错误让我觉得问题在于 SQL Workshop 使用PS_APEX 而报告使用的是APEX_050000。这是有道理的,因为在我授予选择权之前,我在 PS 中创建的视图无法从 APEX 访问。
为了尝试解决这个问题,在PS 架构中,我已将执行(甚至绝望地调试)授予许多不同的架构。以下是完整列表:
EXECUTE APEX_050000 NO PS CKSD_STUDENT
DEBUG APEX_050000 NO PS CKSD_STUDENT
EXECUTE APEX_ADMINISTRATOR_ROLE NO PS CKSD_STUDENT
EXECUTE APEX_LISTENER NO PS CKSD_STUDENT
EXECUTE APEX_PUBLIC_USER NO PS CKSD_STUDENT
EXECUTE APEX_REST_PUBLIC_USER NO PS CKSD_STUDENT
EXECUTE NAVIGATOR_ROLE NO PS CKSD_STUDENT
EXECUTE PSNAVIGATOR NO PS CKSD_STUDENT
EXECUTE PS_APEX NO PS CKSD_STUDENT
EXECUTE PS_MGMT NO PS CKSD_STUDENT
人们做了什么来访问 APEX 中不同模式的包?有人可以帮我弄清楚我错过了什么吗?
【问题讨论】:
标签: oracle database-schema oracle-apex