|
безопастность
|
|||
---|---|---|---|
#18+
Хватить мусолить вопрос оптимизации запроса с group by! Хотелось бы услышать критику или узнать Ваше мнение по поводу решение задачи безопастности. Прийдеться потратить время, чтобы вникнуть, но если не жалко то читайте: Разработка клиент-сервер приложения. Доступ к функциям клиентского приложения раздает админ (чекбоксами) – группам пользователей. Пример: Группа пользователей№1: Справочник №1 Просмотр (Да) Изменение (Нет) Добавление (Да) Удаление (Нет) Функция №5 Выполнение (Да) Каждый справочник имеет набор таблиц, с помощью которых он реализован, функции тоже (не мне Вас учить). Задача заключается в том, чтобы приложением админа делать ограничения на интерфейс пользователя и одновременно на доступ пользователей к таблицам и процедурам на уровне СУБД ( дабы не было поползновений SQLPlus и т.д.). Таблиц порядка 100, групп пользователей – пусть будет 50. Руками править роли никто не собираеться. Решение было следующее: Группы пользователей –это роли СУБД (group1, …, к примеру). Каждому действию, к примеру: Просмотр Справочника№1 – соответствует роль СУБД, так назовем роль минимальная. R1. Админ в приложении, назначая функции клиентского приложения, одновременно выполняет гранты минимальных ролей – ролям групп пользователей. group1 состоит из R1, R2 ….. Недостаток, с которым неприятно работать это : Возникает огромное множество минимальных ролей (к примеру 100 таблиц * 4 действия=400 ролей). Но с ним можно смириться, ведь задача решаеться. Жду, Ваших мнений!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2002, 17:01 |
|
безопастность
|
|||
---|---|---|---|
#18+
А как насчёт пакета dbms_rls ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2002, 17:31 |
|
безопастность
|
|||
---|---|---|---|
#18+
а не проще делать роли которые соответствуют определенному Бизнесс процессу. rl_salary - работа с зп rl_salary_ex - расширенная работа с зп, скажем, только руководству. rl_cash - кассир ... может я чего-то недопонимаю, но обычно этого достаточно. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2002, 18:06 |
|
безопастность
|
|||
---|---|---|---|
#18+
А вот и не все так хорошо! Рассмотрим ситуацию: Пользователь №1 имеет доступ к справочнику№1 для добавления. Справочник №1 опирается на физическую таблицу1 и таблицу2. Соответственно минимальной ролью ограничение таб№1 инсерт и таб№2 селект (К примеру). Этот же пользователь имеет доступ к справочнику№2, который опирается только на таб№2 - минимальная роль таб№2 селект. К примеру админ удаляет теперь вторую роль. Но по первой у пользователя справочник №1 откроеться. Я думаю, что такое действие с dbms_rls описать будет гораздо сложнее. Хотя и возможно. Спасибо. Еще предложения есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2002, 18:14 |
|
безопастность
|
|||
---|---|---|---|
#18+
DiMonstr-у Этого явно мало (недостаточно). Скажем каждый бухгалтер может быть настроен по разному. Одному разрешено править план счетов, другому нет. Одному можно добавить контрагента, другому нет, и т.д. всего очень много, поверь. Предприятие большое. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2002, 18:27 |
|
безопастность
|
|||
---|---|---|---|
#18+
А так ли необходимы минимальные роли? Может ограничиться необольшими, но составными? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2002, 18:36 |
|
безопастность
|
|||
---|---|---|---|
#18+
Все правильно. Минимальная роль и есть составная, и определяет возможность обращения к нескольким таблицам, которые необходимо для того чтобы обратиться к справочнику ( в понимании пользователя) или имеется в виду очень большие (минимальные роли) :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2002, 18:56 |
|
безопастность
|
|||
---|---|---|---|
#18+
Тогда предложение отпадает, однако по фразе 100 таблиц * 4 действия=400 ролей можно было подумать что именно эти роли и будут минимальными, что как-то странно :) "Штирлиц знал: всегда запоминаются только последние слова" ;))) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2002, 12:08 |
|
безопастность
|
|||
---|---|---|---|
#18+
Да, минимальных конечно не 400, но тоже порядочно. Я понял, что и критики особой нет и предложений собственно тоже. Ну что же, спасибо. Ну если че - заходите :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2002, 13:49 |
|
безопастность
|
|||
---|---|---|---|
#18+
ещё раз советую использовать пакет dbms_rls. создайте таблицы в которых будут храниться права доступа, и пусть ваша политика динамически из них генерит функцию. В таком случае (а это проеврено на практике), достаточно формочки, пары таблиц и пакета строк всего 200, чтобы обеспечить очень мощные настройки доступа пользователей ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2002, 17:03 |
|
|
start [/forum/topic.php?fid=52&fpage=2837&tid=1992909]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 247ms |
total: | 381ms |
0 / 0 |