powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Авторизация на основе объединения прав
25 сообщений из 29, страница 1 из 2
Авторизация на основе объединения прав
    #38886910
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, коллеги!
Я испытываю затруднения с организацией ограничения доступа к объектам APEX.
Для каждого объекта (страницы, региона, поля и т.п.) я могу выбрать только одну Авторизационную схему (или ее отрицание).
Вы тоже?
Тогда как быть, если ролей множество и их права замысловато пересекаются?
Я уже настрогал схем типа "Менеджер_Аудитор_Куратор", "Менеджер_Андеррайтер", "Аналитик_Инспектор" и т.п.
Скоро начну четырехмерные гибриды вводить :)

Разве нельзя, как в некоторых средах разработки, сопоставить объекту набор авторизационных атрибутов (ролей, схем) типа
[auditor, manager, curator], что значило бы право доступа для всех 3-х ролей?..
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38886919
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльТогда как быть, если ролей множество и их права замысловато пересекаются?
ты невнимательно читал.
Я тебе говорил, что замысловатость делать ролями оракла.
А APEX этого не любит.
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38886927
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вариант:
- делай им Рабочее место (АРМ).
А не солянку-страницу для Буха-уборщицы.
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38886949
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы так организовал.
1.Создаю таблицу в виде дерева apexrole
id apex_user,role,parent_id

(Иерархия нудна для того,чтобы высшая роль подхватывала все привиллегии низших)

в apexe в contdition_type
pl/sql(можно заранее процедуру сделать)

select role into role_ from apexrole
connect by prior parent_id=id
start with apex_user=:USER;

If role_='MANAGER' return true; end if;

Для менеджеров и выше компонент будет доступен.
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38886963
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irbis_alв apexe в contdition_type
тогда стандарт SECURITY не используется.
А condition у меня обычно уже занят БЛ (бизнес-логикой)
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38886974
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вариант:
- делай им Рабочее место (АРМ).
А не солянку-страницу для Буха-уборщицы.

Ага!
Если, например, простому сотруднику нельзя видеть в справочнике сотрудников поле "зарплата", а начальнику - можно, то для них 2 разных АРМа делать?
Конечно, что ты скажешь "нет!".
Но в моей модели доступа всё так переплетено, что выбор однозначен - в пользу одного АРМ.

И по поводу твоего поста "... делать ролями оракла".
Какая радость от того, что ты хардкодишь еще больше моего? :)

irbis_alЯ бы так организовал.
1.Создаю таблицу в виде дерева apexrole
id apex_user,role,parent_id

(Иерархия нудна для того,чтобы высшая роль подхватывала все привиллегии низших)


Спасибо!
Надо обмозговать...
Не всегда наследник должен иметь все права родителя. У меня нет такой явной зависимости (в функциональном доступе).
В разграничении доступа на уровне данных - да. Там начальник может видеть данные всех своих подчиненных и их подчиненных и т.д. Но это достигается не APEX-авторизацией...

Интересно, а в APEX-5 всё так же?..
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38886981
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123irbis_alв apexe в contdition_type
тогда стандарт SECURITY не используется.
А condition у меня обычно уже занят БЛ (бизнес-логикой)

Ну может у ТС condition свободен.или расширит бизнеслогику.
Если по бизнеслогике + запросу иерархии доступен= значит показывать.
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38886994
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
irbis_alЯ бы так организовал.
1.Создаю таблицу в виде дерева apexrole
id apex_user,role,parent_id

(Иерархия нудна для того,чтобы высшая роль подхватывала все привиллегии низших)

в apexe в contdition_type
pl/sql(можно заранее процедуру сделать)

select role into role_ from apexrole
connect by prior parent_id=id
start with apex_user=:USER;

If role_='MANAGER' return true; end if;

Для менеджеров и выше компонент будет доступен.

И еще нам пришлось кешировать, чтобы ускорить работу приложения. При логоне вычисляются привилегии пользователя, и уже привилегии тянутся из куш таблиц.
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38886999
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльЕсли, например, простому сотруднику нельзя видеть в справочнике сотрудников поле "зарплата", а начальнику - можно, то для них 2 разных АРМа делать?
Конечно, что ты скажешь "нет!".
Но в моей модели доступа всё так переплетено, что выбор однозначен - в пользу одного АРМ.
я скажу - да!
Т.к. не может начальник и сотрудник хотеть одно и то же)).
Сотрудник не может даже список видеть. Не только колонку))
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38887000
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльНо в моей модели доступа всё так переплетено, что выбор однозначен - в пользу одного АРМ.
Один АРМ на всю ИС?
Ты переплетёшь ещё больше спутав Condition с Security
Но, тебе решеть.
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38887017
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если так?
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38887028
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
извини, но разрешения NTFS не будут в APEX.
Он не для этого.
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38887054
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльКакая радость от того, что ты хардкодишь еще больше моего? :)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
function Проверить наличие роли
(
 p_username IN sys.user$.name%type
,p_rolename IN sys.user$.name%type
,p_casesensitive IN varchar2 default 'N'
)
  return PLS_INTEGER /*1==True, 0==False*/
AS
  v_username sys.user$.name%type;
  v_rolename sys.user$.name%type;
  v_count PLS_INTEGER;
Begin
  If p_casesensitive='Y' then
    v_username:=p_username;
    v_rolename:=p_rolename;
  Else
    v_username:=upper(p_username);
    v_rolename:=upper(p_rolename);
  End if;
  select count(*) into v_count from dual
          where exists (
                select NULL
                  from sys.sysauth$ sa
                 where sa.privilege# = (select USER# from sys.user$ where name=v_rolename)
               connect by prior privilege#=grantee#
                 start with sa.grantee#= (select USER# from sys.user$ where name=v_username)
                 );
  Return v_count;
End;
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38887079
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Курдль,
извини, но разрешения NTFS не будут в APEX.
Он не для этого.

Ты это к чему?
Модель, что я привел, - это чаша грааля для любой системы управления доступом.
Такая модель доступа в основе oracle, IBM Tivoli и мн.др.
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38887096
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
ну дак тут, в APEX уже всё сделано....не по этой модели.
Например, в NTFS бит "Запрет" имеет приоритет.
Если он есть в объекте, то дальше вообще не проверяется.
Т.е. можно админу перекрыть доступ....временно))
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38887105
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
не делайте из APEX монстра. Переходите на другой ЯП.
Это и Оракл советует.
APEX это access)) и это отлично!
IMHO
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38887118
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Причем здесь "приоритет"?

И почему "в APEX всё сделано не по этой модели"?
Приведенная мною схема позволяет обеспечить разграничение доступа к любому объекту приложения APEX.
А можно даже назначить доступ не к объектам, а к сущностям предметной области.
Только именовать авторизационные схемы надо будет не "Администратор" или "Шеф_Аудитор", а "Зарплата", "Детализация аудита" и т.п.


Petro123Курдль,
не делайте из APEX монстра. Переходите на другой ЯП.
Это и Оракл советует.
APEX это access)) и это отлично!
IMHO

Я думаю, что маркетологи оракла не согласятся с тем, что АРЕХ = это MS Access :)
И я перешел из другой среды на АРЕХ, т.к. того требовали НФТ заказчика.
Кстати, завидую твоему положению - ты сам можешь придумывать, сколько АРМов и для каких ролей...
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38887160
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльИ я перешел из другой среды на АРЕХ, т.к. того требовали НФТ заказчика.
Кстати, завидую твоему положению - ты сам можешь придумывать, сколько АРМов и для каких ролей...
я "политикой" не занимаюсь.
ТЗ так ТЗ.
Всё равно технарю приходится говорить заказчику\PM, что ...будет большой оверхед и дорого\долго.
Написать можно всё что угодно.
Я тоже выполняю приказы)) как и ты.
Как говорится - я предупредил (руководство), и моя совесть чиста.

Сущность - это таблица в APEX, т.к. тут нет ОРМ.
Т.е.
Сущность -
авторизация -
функция авторизации PL

1 к одному к объекту ГУИ.
Ты же сам сказал - неудобно.
.........
У меня всё сложности в БД, поэтому -
Все схемы авторизации простейшие - плоские.
Код: sql
1.
return проверить_роль(:APP_USER, 'роль')=1;
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38887168
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
плюс, как всегда, исключения - есть несколько мест в коде с той же проверкой.
Это уже без оф.схемы авторизации.
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38887171
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльЯ думаю, что маркетологи оракла не согласятся с тем, что АРЕХ = это MS Access :)
маркетологи всегда имеют линейку решений.
Java же куплена Ораклом))
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38887185
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Сущность - это таблица в APEX, т.к. тут нет ОРМ.
Т.е.
Сущность -
авторизация -
функция авторизации PL

1 к одному к объекту ГУИ.
Ты же сам сказал - неудобно.
.........

Я под сущностью не объект GUI имел в виду.
Сущность предметной области не совсем то название. Надо обдумать точнее.
Например, вносим в БД сущность "зарплата" как объект доступа.
Даем в БД разрешение на просмотр для Шефа и редактирование - для Бухгалтера.
Делаем схему "ЗАРПЛАТА" и все элементы GUI, которые отображают или управляют "зарплатой", привязываем к этой схеме
(колонки отчета, поля формы, кнопки или целые формы).
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38887217
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльНапример, вносим в БД сущность "зарплата" как объект доступа.
у меня вносим роль - "зарплата" как объект доступа
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38887224
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльДаем в БД разрешение на просмотр для Шефа и редактирование - для Бухгалтера.
grant role Зарплата USER в БД
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38887232
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123КурдльНапример, вносим в БД сущность "зарплата" как объект доступа.
у меня вносим роль - "зарплата" как объект доступа

Так у тебя пользователи АРЕХ = пользователи оракла!
Говорю - тебе повезло с заказчиками, безопасники которых такое согласовали :)
...
Рейтинг: 0 / 0
Авторизация на основе объединения прав
    #38887252
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
да. Они ведь даже роли Connect не имеют.
Вопрос безопасности спорный.
роли оракла надёжнее чем их иммитация на коленке.
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Авторизация на основе объединения прав
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]