Oracle apex 19.1 (аутентификация и авторизация пользователя) - PullRequest
0 голосов
/ 24 марта 2020

Я создаю приложение (приложение x), которое требует защиты определенных частей приложения. По сути, мне нужно приглашение авторизации для выборочного отклонения / принятия доступа. Быстрый пример желаемого результата:

  • В приложении x есть приложение для ведения дневника в отношении налоговых деклараций

  • Джон выбирает значок дневника, затем он вводит свое имя пользователя и пароль.

  • Джону теперь предоставлен доступ.
  • Лиза пытается получить доступ к дневнику, однако ее учетные данные отклонены. *

Как вы можете видеть в этом примере, Джон является Авторизованным пользователем, а Лиза - нет.

Как мне реализовать это на вершине?

Пошаговое руководство будет меня высоко оценили. Меня также немного смущает разница между Аутентификацией и Авторизацией.

1 Ответ

0 голосов
/ 24 марта 2020

Создать таблицу, которая содержит информацию о привилегиях, например,

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;

Теперь создайте набор функций (предпочтительно содержащихся в пакете), которые будут - для каждого пользователя - возвращать, являются ли они (или нет) предоставил определенные привилегии. Вы можете вернуть Boolean, но - тогда вы не сможете использовать его в чистом виде 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, используя «Условие на стороне сервера», используйте «Функция, которая возвращает Boolean» Например,

return f_priv_admin_01 (:APP_USER) = 1;

, который гласит: если в данный момент пользователь вошел в систему как 'admin', отобразите эту страницу / регион / дневник как угодно. Иначе не надо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...