Oracle apex 19.1(用户身份验证和授权)

时间:2020-03-24 09:38:25

标签: sql oracle plsql oracle-apex

我正在创建一个应用程序(应用程序x),这将需要保护应用程序的某些部分。我本质上需要一个授权提示来选择性地拒绝/接受访问。所需结果的快速示例:

  • 在应用程序x中有一个关于纳税申报的日记应用程序

  • John选择日记图标,然后输入他的用户名和密码。

  • John现在被授予访问权限。
  • Lisa尝试访问日记,但是她的登录凭据被拒绝。*

在此示例中,您可以看到John是授权用户,Lisa不是。

如何在apex上实现此功能?

一步一步的指导,我将不胜感激。我对身份验证和授权之间的区别也感到困惑。

1 个答案:

答案 0 :(得分:0)

例如创建一个表,其中包含有关特权的信息

create table priv
  (app_user varchar2(30),
   priv     varchar2(20) 
  );

insert into priv (app_user, priv) 
  select 'JOHN', 'admin' from dual union all
  select 'LISA', 'oper'  from dual;

现在创建一组功能(最好包含在一个程序包中),这些功能将(对于每个用户)返回是否(或不被)授予某些特权。您可以选择返回布尔值,但是-则不能在纯SQL中使用它。

create or replace function f_priv_admin_01 (par_app_user in varchar2)
  return number
is
  -- return 1 if PAR_APP_USER is admin; return 0 otherwise
  retval number := 0;
begin
  select 1
  into retval
  from priv
  where app_user = par_app_user
    and priv = 'admin';

  return retval;
exception
  when no_data_found then
    return retval;
end;

在您的Apex应用程序中,使用“服务器端条件”,例如,使用“返回布尔值的函数”

return f_priv_admin_01 (:APP_USER) = 1;

表示:如果当前登录的用户是'admin',则显示该页面/区域/日记。否则,不要。

相关问题