Настраиваемая схема авторизации Oracle Apex 5.1, при которой только пользователь может просматривать данные, вставленные в таблицу.

Как я могу создать схему авторизации на oracle apex 5.1, которая работает как facebook

пример user1 и user2 одна и та же таблица

пользователь1 входит в свою учетную запись и вставляет данные и может просматривать данные. Пользователь2 вошел в свою учетную запись и не может просматривать данные, которые вставил пользователь1.

наоборот


person blank    schedule 06.02.2018    source источник


Ответы (1)


Схемы авторизации APEX контролируют доступ к компонентам APEX, таким как страницы, регионы, элементы и т. д., но не к строкам ваших данных.

Правильным решением Oracle для этого требования будет виртуальная частная база данных (VPD), который применяет ваши правила ко всем запросам и ограничивает, какие строки может видеть пользователь. Однако для этого требуется Oracle Enterprise Edition.

Простой метод, который будет работать в любой редакции Oracle:

  1. Каждой таблице нужен столбец с идентификатором пользователя, создавшего его, например. CREATED_BY. Вы можете использовать триггер базы данных, чтобы он всегда заполнялся именем пользователя APEX. (Примечание. Для метода VPD также потребуется этот столбец.)

  2. В каждом запросе отчета вы добавляете фильтр, например:

    и e.created_by = :APP_USER

Конечно, всегда есть риск, что вы где-нибудь забудете добавить фильтр. Лучшим решением, позволяющим избежать этого, было бы создание представлений, применяющих фильтр, например.

create view apex_employees as
  select * from employees
  where created_by = (select v('APP_USER') from dual);

Затем используйте схемы и гранты, чтобы убедиться, что APEX может видеть только представление, а не таблицу. Теперь нет необходимости добавлять фильтры к каждому запросу отчета. Это решение иногда называют «ДПН бедняка».

person Tony Andrews    schedule 06.02.2018