当用户是ORACLE APEX中的“最终用户”时,隐藏维护页面

问题描述 投票:0回答:1

我想隐藏“最终用户”的“维护”页面并为其设置法规我在oracle apex中创建应用程序。目前,我有2个用户帐户:一个是名为A的管理员,一个是名为B的最终用户。管理员可以编辑,插入和删除数据,但最终用户不能执行此操作。最终用户可以做的只是看数据。

目前,两者都可以看到所有页面,最终用户可以执行所有操作。如何存档?我找到了有关身份验证方案的信息,这可能与我的问题有关。但是我不知道怎么写。请提出解决方案。

oracle authentication oracle-apex admin end-user
1个回答
0
投票

一个简单的选项是创建一个函数,该函数说明某些用户是否为最终用户。例如:

create table users
  (username   varchar2(30),
   user_role  varchar2(20)
  );

insert into users (username, user_role)
  select 'Little', 'Admin'   from dual union all
  select 'Foot'  , 'EndUser' from dual;

create or replace function f_is_end_user (par_app_user in varchar2)
  return boolean
is
  l_one number(1);
begin
  select max(1) 
    into l_one
    from users
    where username = par_app_user
      and user_role = 'EndUser';
  return l_one = 1;
end;
/

测试:

SQL> begin
  2    dbms_output.put_line(case when f_is_end_user('&par_app_user') then 'it is end user'
  3                              else 'it is NOT end user'
  4                         end);
  5  end;
  6  /
Enter value for par_app_user: Little
it is NOT end user

PL/SQL procedure successfully completed.

SQL> /
Enter value for par_app_user: Foot
it is end user

PL/SQL procedure successfully completed.

为管理员用户创建相同的功能。

现在,转到共享组件,授权方案,并创建一个新方案:

  • 将其命名为“ end_user”
  • 类型:PL / SQL函数返回布尔值
  • 功能主体:return f_is_end_user(:APP_USER);
  • 错误消息:“您无权执行此操作。”

对“管理员”用户执行相同操作。

返回您的应用程序。导航至页面并设置其Authorization Scheme

  • 例如,如果您不想让最终用户查看页面,请将其设置为{Not end_user}
  • 您也可以对任何项目执行此操作;如果您不想让最终用户使用“保存”按钮,则可以修改按钮的“授权方案”属性。

很简单,不是吗?

© www.soinside.com 2019 - 2024. All rights reserved.