powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / (СУБД) Роли как привилегия/операция
25 сообщений из 105, страница 1 из 5
(СУБД) Роли как привилегия/операция
    #36643314
Здравствуйте,

Разрабатываем БД (СУБД PostgreSQL) и клиентские приложения ( 2-х звенка ).
На данный момент пользователей около 50 и уже становится не очень удобно раздавать права, а что будет когда пользователей перевалит за 100 трудно представить.
Вроде ничего сложного:
1)Определил необходимые роли для пользователей
2)Создал эти роли/группы
3)Даешь пользователям необходимые роли

Но сейчас раздачей прав занимается администратор БД и возникла необходимость переложить или отдать часть этой работы другому человеку. К тому же сложность в выделении конкретного списка ролей по обязанностям.

Как я это вижу:
Создается приложение в котором пользователь галками проставляет пользователям необходимые права.

Пользователь этой программы понятия может не иметь о структуре БД, функциях и т.д., он оперирует действиями предметной области. То есть на экране он видит нечто "Создание договоров", "Редактирование спецификации", "Просмотр заявок своего подразделения" и т.д.

При отметке соответствующего пункта пользователю даются необходимые права на объекты БД, которые связаны с этим действием.

На данный момент две идеи:

1)Описывается связь между операциями над системными объектами и операциями(предм. область)

Смотрим
(Упрощенно)
Создаются таблицы:

operations (Операции/действия применительно к предметной области)
id opname1 Просмотр номенклатуры2 Редактирование спецификаций


user_operation (Назначение операций ролям)
role_name operation_idvasya 1vasya 2
db_objects (Объекты БД)
id obj_name obj_type999 PRODUCT TABLE

db_operations (Операции с объектами БД: SELECT, EXECUTE, UPDATE, etc.)
id dbop_name dbop_define5 'ВЫБОРКА' 'SELECT'

dbobj_operation (Определение необходимых действий над системными объектами для операции)
operation_id db_operation_id db_object_id1 5 999

И теперь вся работа по раздаче прав ведется через приложение, которое при проставлении галочек формирует SQL запрос(GRANT/REVOKE) на необходимые объекты и выполняет его. Админу необходимо только заполнять таблицу связи операций с объектами БД (dbobj_operation).


2) В качестве операций используются специально созданные роли

Смотрим
Так же создается таблица операций

operations (Операции/действия применительно к предметной области)
id opname1 Просмотр номенклатуры2 Редактирование спецификаций


Но привязывать операции буду к специально созданным ролям/группам.

user_operation (Назначение операций ролям)
priv_role_name operation_idpriv_product_select 1priv_edit_sp 2

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

Этим ролям (priv_*) админом раздаются необходимые права на объекты БД.
А приложению при проставлении/снятия галочки останется только включить/исключить реального пользователя в эту группу.


Пример:
есть таблица - product
роль пользователя - vasya
привилегия(роль) - priv_product_select
Операция - Просмотр номенклатуры

Админ дает
Код: plaintext
GRANT SELECT ON product TO priv_product_select;
При проставлении пользователем галочки напротив операции "Просмотр номенклатуры" роль vasya становится членом роли priv_product_select, и соответственно получает права на просмотр таблицы priv_product_select.


В силу простоты мне больше нравится 2 вариант, но настораживает использование ролей не совсем так как задумано и большим количеством этих ролей. Насколько разумно использовать роли в таких целях?

Хочется услышать/получить совет как решают подобные задачи(раздачу прав) профессионалы.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
(СУБД) Роли как привилегия/операция
    #37838110
westvovik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотелось бы узнать как вы реализовали это
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37839186
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
westvovik,
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37839323
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сколь угодно сложную систему прав можно реализовать одной, совсем не широкой таблицей.

Суть крайне проста:
ИмяПрава, ИД юзера, ИД типа объекта, значение(целое число, можно использовать как битовую маску).

Если добавить строчное/флоат/дата поля, то в добавок там же можно хранить различные индивидуальные параметры для юзера.

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

В коде (как в приложении так и в SQL) достаточно вызвать функцию:

IsMyRight('Документ', MyUserID, ID типа документа "КарточкаТовара") = ....

чтоб узнать, что можно юзеру делать, например с карточкой товара. И т.д.

У нас есть "Документ", "Репорт" и прочие права (что-то типа "ЗапретПравитьЧужуюКарточку", "ВидетьЧужуюХХХХХНакладную" и т.д.).
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37839448
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVСколь угодно сложную систему прав можно реализовать одной, совсем не широкой таблицей.
Ну в принципе любую сколь угодно сложную систему чего угодно можно реализовать одной таблицей с одним полем и одной записью. Тем не менее, я был бы несколько осторожнее в утверждениях. Например, в этой "неширокой таблице" будет немного проблематично реализовать такой полезный функционал как "на время отпуска сотрудника X некую операцию от его имени может делать сотрудник Y". Есть и другие моменты, например "документы на сумму до X cотрудник может утверждать самостоятельно, для документов с суммой от X до Y при попытке утверждения автоматически запрашивается разрешение от начальника, а больше Y вообще нельзя".
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37839550
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не, Сахават, так не канает. Сначала вам придется описать сущности и элементарные действия. Кстати и о метамодели: выделяемые сущности должны в нее вписываться.
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37839714
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621,

не въехал, обясни
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37840185
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> не въехал, обясни

Вместо "Настройка форм" у вас будет что-то типа: роль -> модуль -> интерфейс -> действия. Элементы интерфейса есть смысл описать как расширение метамодели.
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37840237
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621,

"Настройка форм" означает, что пользователь может перенастроить внешний вид любой доступной ему формы (визуальное представление макротипа) (сами формы генерируются автоматически)
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37840246
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

тут у меня не хватает одного слоя репозитария (что типа пользователи - модератора роли, могут создать изменения для всей роли)
тогда можно было бы пользователю совать не автоформы, а формы настроенные модератором-дизайнером роли
сделаю как нить
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37840692
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> не въехал, обясни

Вместо "Настройка форм" у вас будет что-то типа: роль -> модуль -> интерфейс -> действия. Элементы интерфейса есть смысл описать как расширение метамодели.

Роли зачастую очень неудобны. Приложнение -> модуль->действие->разрешения/запрещения для группы и/или пользователя
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37840730
iscrafm__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerНапример, в этой "неширокой таблице" будет немного проблематично реализовать такой полезный функционал как "на время отпуска сотрудника X некую операцию от его имени может делать сотрудник Y". Есть и другие моменты, например "документы на сумму до X cотрудник может утверждать самостоятельно, для документов с суммой от X до Y при попытке утверждения автоматически запрашивается разрешение от начальника, а больше Y вообще нельзя".
это смешивание в одну кучу различных сущностей.
Первое реализуется элементарной опцией "активности" разрешения и штатными для подобных систем условиями И-ИЛИ . Второе, вообще типичная прикладная задача из области документооброта и визирования. Рассматривание этого с позиций системы управления доступом - типичная ошибка, когда что-то применяется не по назначению . Ввиду этого, самостоятельно создаются трудности, а затем, героически преодолеваются.
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37840731
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

"Приложение" в ВИПРОС - понятие "гулящее"
Вот дали тебе права на набор макротипов и их методы - и это твое "приложение"
"Модуль" воще ни о чем не говорит - метод може быть описан где угодно (хоть в собственной папке пользователя в виде текста, который доступен только для него), кто угодно может расширить-заменить метод (при соответствующих правах)
вощеи имеется изменяемый набор кирпичиков (типы, макротипы и их методы (хотя не их и вовсе, а приданные из которых для каждого можно собрать что угодно
потому права и даются на эти кирпичики
при этом функциональность этих кирипичиков можно ограничить для каждого через правила и фильтры
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37840733
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

что бы поля читались нормально продублирую
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37840734
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm__Первое реализуется элементарной опцией "активности" разрешения и штатными для подобных систем условиями И-ИЛИ .
Мне кажется, что Вы в стремлении возразить немного забыли, о чём мы вообще говорим. Реализовать можно всё, и почти всё - не особенно сложно. Вопрос в том, что "одна неширокая таблица" при этом начинает "расширяться".

iscrafm__Второе, вообще типичная прикладная задача из области документооброта и визирования. Рассматривание этого с позиций системы управления доступом - типичная ошибка, когда что-то применяется не по назначению .
Не соглашусь. Представьте себе, что Вы через дверь уговариваете пятилетнюю двоюродную племянницу пустить Вас в квартиру - вот и система управления доступом. И если она бежит "бабушка, там кто-то говорит, что он двоюродный дядя" - это что, использование не по назначению?

iscrafm__Ввиду этого, самостоятельно создаются трудности, а затем, героически преодолеваются.
Для эротических фантазий у нас предусмотрен другой форум.
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37840739
iscrafm__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwareriscrafm__Ввиду этого, самостоятельно создаются трудности, а затем, героически преодолеваются.
Для эротических фантазий у нас предусмотрен другой форум.
у кого у вас и к чему это вообще ляпнуто?
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37840741
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm__у кого у вас
У адекватных подписчиков sql.ru

iscrafm__и к чему это вообще ляпнуто?
К тому, чтобы Вы несли их туда и не замусоривали ими проффорум.
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37840743
iscrafm__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwareriscrafm__Первое реализуется элементарной опцией "активности" разрешения и штатными для подобных систем условиями И-ИЛИ .
Мне кажется, что Вы в стремлении возразить немного забыли, о чём мы вообще говорим. Реализовать можно всё, и почти всё - не особенно сложно. Вопрос в том, что "одна неширокая таблица" при этом начинает "расширяться".

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


softwareriscrafm__Второе, вообще типичная прикладная задача из области документооброта и визирования. Рассматривание этого с позиций системы управления доступом - типичная ошибка, когда что-то применяется не по назначению .
Не соглашусь. Представьте себе, что Вы через дверь уговариваете пятилетнюю двоюродную племянницу пустить Вас в квартиру - вот и система управления доступом. И если она бежит "бабушка, там кто-то говорит, что он двоюродный дядя" - это что, использование не по назначению?

не соглашайся, твое право.
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37840747
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, Валер, выпей уже и успокойся. Полезней будет. Dixi.
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37840751
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm__,

Валер, а как в Искре устройство прав?
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37840752
iscrafm__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwareriscrafm__у кого у вас
У адекватных подписчиков sql.ru

iscrafm__и к чему это вообще ляпнуто?
К тому, чтобы Вы несли их туда и не замусоривали ими проффорум.
ты себя после такого считаешь адекватным? мда... Здесь адекватных практически не осталось. Но к теме это не относится. Если ты не понимаешь о чем речь идет, то лучше не встревай в разговор. Это элементарное правило надеюсь понятно для тебя? Бабушка...пятилетняя племянница... образец адекватного подписчика (слово то какое придумал)...

по теме:
1. Твой пример №1 элементарная задача
2. Твой пример №2 вообще не относится к задачам, обсуждаемым в теме.
Так твой проффорум меньше захламляется? Или нет упоминания о бабушках и племянницах, не подходит?
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37840753
iscrafm__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerЛадно, Валер, выпей уже и успокойся. Полезней будет. Dixi.
я не пью, с утра. спасибо
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37840778
iscrafm__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosiscrafm__,

Валер, а как в Искре устройство прав?
Сахават, Пользователи...Профили -> а-ля Роли.
Профиль определяет полный "контент" (содержание) того, что получает пользователь в свое распоряжение, т.е. никаких матриц, в классическом понимании, не существует.
Пользователь может воспользоваться содержанием одного или нескольких профилей. "Кто он" сейчас определяется в момент регистрации в системе. Действует так называемое "динамическое разделение обязанностей", "временное ограничение обязанностей", в классических терминах ролевого доступа.
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37840793
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm__,

ясно
...
Рейтинг: 0 / 0
(СУБД) Роли как привилегия/операция
    #37840850
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Роли зачастую очень неудобны

Вы не умеете их готовить. Никаких других эффективных способов ограничения доступа до сих пор не придумали. Вопрос на самом деле заключается в том, как именно вы определяете функционально законченные элементы приложения. Регистрация исключений - часть ролевой модели.
...
Рейтинг: 0 / 0
25 сообщений из 105, страница 1 из 5
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / (СУБД) Роли как привилегия/операция
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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