Авторизация и роли пользователей в Oracle Apex?

таким образом, Apex имеет "рабочие области", которые позволяют создавать пользователей трех типов - все из которых являются внутренними для организации по своей природе. Кроме того, кажется, что разработчик отдельного сайта на Apex не может иметь "пользователей" только для своего сайта.

Я что-то пропустила?

Мне нужно иметь возможность иметь внешних (бизнес) пользователей, чтобы иметь возможность получить доступ только к некоторым функциям сайта, например, бухгалтерский учет может видеть только страницы A и B, в то время как руководители могут видеть A, B и C.

Мне нужно иметь возможность иметь несколько групп людей с разными степенями доступа.

Это можно сделать только путем создания рабочих групп? Или это можно сделать внутри только на моем сайте?

3 ответов


хотя APEX имеет встроенную концепцию управления пользователями под названием "группы", я должен признаться, что никогда не использовал ее, и быстрый просмотр документации не дает мне понять, как вы используете их для управления доступом (но см. Тома здесь).

вероятно, вам потребуется создать таблицы пользователей/ролей в базе данных и использовать их вместе со схемами авторизации APEX для управления доступом к страницам. Единая схема авторизации типа " PL / SQL Функция, возвращающая логическое значение" может быть создан с помощью функции:

return my_auth_pkg.is_authorized (p_user    => :app_user,
                                  p_app_id  => :app_id
                                  p_page_id => :app_page_id);

затем вы реализуете пакет, чтобы найти права пользователя и решить, возвращать ли TRUE или FALSE для приложения и идентификатора страницы. enter image description here

в качестве альтернативы вы можете просто выполнить SQL для проверки доступа непосредственно в схеме авторизации: enter image description here

(NB " user_roles "и" role_pages " - это имена, которые я придумал, чтобы представить код таблицы)


Я просто хочу расширить Тони, что само по себе является правильным. Я просто хочу показать вам другой способ, который, я думаю, будет проще для новичка и опустит создание таблиц.

Если приложение использует Apex в качестве схемы проверки подлинности, то управление пользователями осуществляется посредством администрирования самой рабочей области. Можно создавать, редактировать и удалять пользователей, но можно также определять группы и связывать пользователей с группами. Это возможно для вас, чтобы создать несколько" конечных пользователей "типа пользователей и определяют пару групп, таких как"руководители".

Apex users and groupsCreation of a group После создания группы перейдите к пользователю, которому вы хотите назначить эту группу, и добавьте группу в группы этого пользователя

Adding a group to a user

Как только вы это настроите, вам все еще нужны схемы авторизации. Факт остается фактом, вам нужны некоторые знания pl/sql здесь, но можно свести кодирование к минимуму, благодаря некоторым удобным api-работа. Defining an authorization based on apex groups The current_user_in_group делает то, что он говорит: он проверяет для текущего пользователя, если он сказал, что группа. С некоторым расширением, используя некоторые простые IF-структуры, вы можете немного увеличить его!

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


авторизация-это процесс определения того, разрешено ли аутентифицированному / идентифицированному лицу получить доступ к ресурсу или выполнить операцию. Он основан на наборе привилегий или ролей, назначенных пользователю. Например, в базе данных Oracle администратор имеет право планировать задания, а пользователь-нет. Чем авторизация отличается от аутентификации? Часто аутентификация и авторизация работают вместе. Другими словами, авторизация следует за аутентификацией. Идентификация определяет, кто вы? Авторизация определяет, что вам разрешено делать?