【发布时间】:2011-09-01 05:25:18
【问题描述】:
在我们的 j2ee 应用程序中,我们使用安全应用程序角色。基本上,数据源使用应用程序用户模式连接到数据库。应用用户只有创建会话权限。 数据库登录触发器会将一组属性复制到本地安全上下文。 (IP 地址、会话用户、客户端 ID、应用程序名称)。应用程序在执行任何 DML 之前显式调用存储过程 sec_mgr.set_role。
sec_mgr.set_role 将检查本地上下文属性,授权 ip,应用程序名称,并根据会话用户为该会话设置赞赏角色。
我们希望将相同的框架应用于 APEX 应用程序。首先,我们将配对模式更改为只有创建会话权限的应用模式。然后我们将调用 sec_mgr.set_role 的 plsql 代码放在 application builder --> shared components ---> edit security attribute ---> Virtual Private Database (VPD) 中。
然而,我们得到了错误 ORA-06565: cannot execute SET ROLE from within stored procedure
sec_mgr.set_role 被定义为调用者的权限(AUTHID CURRENT_USER)
我是否遗漏了 APEX 中的某些内容以使其正常工作?
谢谢
【问题讨论】:
标签: oracle-apex security-roles