首页 > 解决方案 > 如何根据用户权限显示不同的交互式网格查询

问题描述

我使用主从页面。我只想为管理员用户显示整个表格。对于不是管理员的用户,我想显示限制 MD 视图的 sql 查询。

我尝试在同一页面上创建另一个主详细信息,该信息仅对没有管理员角色的用户可见。并且第一个 MD 对他们不可见。(我使用了服务器端条件)是否存在其他方式来显示不同的查询,具体取决于用户角色。

我希望我清楚地解释了这个问题。提前致谢

标签: sqloracle-apex

解决方案


查看包APEX_ACL,您可以在 where 子句中使用相关视图。

示例:管理员看到所有行,其他用户只看到 KING 的行

SELECT *
  FROM emp
 WHERE 
       -- user is admin ?
       ( EXISTS ( SELECT 1
                   FROM apex_appl_acl_user_roles
                  WHERE application_id = :APP_ID AND
                        user_name = :APP_USER AND
                        role_static_id = 'ADMINISTRATOR'
                ) ) OR
       -- user is no admin 
       ( ename = 'KING' );

推荐阅读