Oracle APEX 18.1 GUI - PullRequest
       7

Oracle APEX 18.1 GUI

0 голосов
/ 23 октября 2018

Я только начинаю просматривать учебники Oracle APEX, когда думаю о переходе на эту технологию.Это очень всесторонне, и я медленно нахожу свой путь вокруг страниц разработчиков.

Один вопрос, который сразу же возник, - это как разделить пользовательские данные.Для начала я создаю простое приложение CRUD и хотел бы, чтобы каждый пользователь имел доступ только к своим данным.

Это достижимо с помощью графического интерфейса APEX или мне нужно немедленно погрузиться в PL / SQL?

Спасибо

1 Ответ

0 голосов
/ 23 октября 2018

Это был бы какой-то 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, о которой я упоминал выше), вы можете использовать информацию, хранящуюся в.

...