Создать таблицу, которая содержит информацию о привилегиях, например,
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', отобразите эту страницу / регион / дневник как угодно. Иначе не надо.