Авторизация и роли пользователей в 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 для приложения и идентификатора страницы.
в качестве альтернативы вы можете просто выполнить SQL для проверки доступа непосредственно в схеме авторизации:
(NB " user_roles "и" role_pages " - это имена, которые я придумал, чтобы представить код таблицы)
Я просто хочу расширить Тони, что само по себе является правильным. Я просто хочу показать вам другой способ, который, я думаю, будет проще для новичка и опустит создание таблиц.
Если приложение использует Apex в качестве схемы проверки подлинности, то управление пользователями осуществляется посредством администрирования самой рабочей области. Можно создавать, редактировать и удалять пользователей, но можно также определять группы и связывать пользователей с группами. Это возможно для вас, чтобы создать несколько" конечных пользователей "типа пользователей и определяют пару групп, таких как"руководители".
После создания группы перейдите к пользователю, которому вы хотите назначить эту группу, и добавьте группу в группы этого пользователя
Как только вы это настроите, вам все еще нужны схемы авторизации. Факт остается фактом, вам нужны некоторые знания pl/sql здесь, но можно свести кодирование к минимуму, благодаря некоторым удобным api-работа. The current_user_in_group делает то, что он говорит: он проверяет для текущего пользователя, если он сказал, что группа. С некоторым расширением, используя некоторые простые IF-структуры, вы можете немного увеличить его!
Не то, чтобы я полностью рекомендовал этот метод, я нахожу его немного утомительным, и вам нужен кто-то, чтобы войти в APEX, чтобы фактически поддерживать пользователей и их группы, но вполне может быть, что это приемлемо в вашей среде. Вы можете использовать его, чтобы начать с однако. Вы можете очень легко переключить схемы аутентификации, и с изменением схем авторизации, чтобы они соответствовали новой схеме аутентификации, вы можете легко и быстро настроить это позже. Это зависит от ваших приоритетов и целей курса.
авторизация-это процесс определения того, разрешено ли аутентифицированному / идентифицированному лицу получить доступ к ресурсу или выполнить операцию. Он основан на наборе привилегий или ролей, назначенных пользователю. Например, в базе данных Oracle администратор имеет право планировать задания, а пользователь-нет. Чем авторизация отличается от аутентификации? Часто аутентификация и авторизация работают вместе. Другими словами, авторизация следует за аутентификацией. Идентификация определяет, кто вы? Авторизация определяет, что вам разрешено делать?