Это был бы какой-то VPD ( Виртуальная частная база данных ).
Что такое виртуальная частная база данных Oracle?
Виртуальная частная база данных Oracle (VPD) позволяет создавать политики безопасности для управления доступом к базе данных на уровне строк и столбцов.По сути, Oracle Virtual Private Database добавляет динамическое предложение WHERE в оператор SQL, который создается для таблицы, представления или синонима, к которому была применена политика безопасности Oracle Virtual Private Database.
A (относительно) простой способ сделать это - изменить таблицы так, чтобы вы знали, какие данные принадлежат какому пользователю - Apex предлагает строку подстановки :APP_USER
, которая равна текущему зарегистрированному пользователю:
alter table emp add app_user varchar2(30);
Тогда, вы бы вручную добавили новый фрагмент условия ко всем вашим WHERE
предложениям (в интерактивных отчетах, классических отчетах, ...), например,
select empno, ename, job, sal
from emp
where deptno = :P1_DEPTNO
-- add this to all queries
and app_user = :APP_USER
-- end of add this ...
order by ename;
Если высделать это для всех таблиц?Не обязательно;если вы можете присоединить эти таблицы к той, которая содержит информацию о владельце (например, EMP, о которой я упоминал выше), вы можете использовать информацию, хранящуюся в.