powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура данных для раздачи прав доступа
11 сообщений из 11, страница 1 из 1
Структура данных для раздачи прав доступа
    #35501589
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеются сущности: Пользователь и Роль
Необходимо задавать права доступа к к информации как на уровне Пользователь так и на уровне Роль

На уровне Пользователь или Роль отдельно проблем нет, а вот с реализацией одновременного указания прав доступа для Пользователь и Роль - проблема

Роли
--------------
РольID
Название Роли


Пользователи
-----------------
ПользовательID
Имя Пользователя


РолиПользователя
---------------------
ПользовательID
РольID


Обекты
---------------
ОбъектID
.....


ПраваДоступаКОбъекту
----------------------------
ОбъектID
?????


Помогите советом плз
...
Рейтинг: 0 / 0
Структура данных для раздачи прав доступа
    #35501868
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp...
Может поможет ссылка
...
Рейтинг: 0 / 0
Структура данных для раздачи прав доступа
    #35501995
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, ссылка интересная, но только раззадорила, т.к. обещанного продолжения с объединением ACL и RWD нет :(

Senya_L sp...
Может поможет ссылка
...
Рейтинг: 0 / 0
Структура данных для раздачи прав доступа
    #35502037
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spспасибо, ссылка интересная, но только раззадорила, т.к. обещанного продолжения с объединением ACL и RWD нет :(

Senya_L sp...
Может поможет ссылка
Тогда надо спросить автора, kdv, на форуме ibase.ru
...
Рейтинг: 0 / 0
Структура данных для раздачи прав доступа
    #35503239
Чорный Бада
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, ввести что-то типа базовой сущности, которой и назначаются права на обьект, а пользователи и роли могут быть уже её частными случаями. Наподобие как те же ACL-ы устроены - есть уникальный SID, ему и назначены права, а чему этот SID соответствует - пользователю или группе - без разницы.
...
Рейтинг: 0 / 0
Структура данных для раздачи прав доступа
    #35503327
SunVegas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сильно не вникал в суть и структуру вашей БД, но мне не понятно о чем вы ломаете голову?

Роль - имхо - есть шаблон проставленных элементарных прав к каким-то объектам.
Пользователь - есть аккаунт наделенный правами или вручную или просто применен шаблон.

ИМЕЕМ:
-------------------
Objects: guestbook, price
Type_permissions: read, write&read (потому что голый write без read функционально глупо, а
контроллировать их совместное присутствие - лишняя
нагрузка, лучше принять что write - это еще read в любом
случае, но все зависит от целей)

Prior_permissions: write&read = 1, read=0 (Смысловой приоритет прав, какие права дают бОльшие
полномочия - потом пригодится в примере)
Accounts: peter, ivan
Roles: admin, user, guest

ЗНАЧЕНИЯ:
----------------------------
роли admin = guestbook (write&read), price (write&read)
user = guestbook (read), price (read)
guest = guestbook (None), price (None)


Теперь, если мы назначаем пользователю peter <- Role admin
то фактически мы просто копируем в его permission предустановленные значения
из шаблона admin, то есть он получает проставленные права.
Если мы удаляем, то удаляются все права определенные шаблоном Admin.
Если мы добавляем как роль admin так и роль user, то в базу permissions этого пользователя права также линейно накладываются по правилу:
права с бОльшим Prior_permissions имеют приоритет:
То есть фактически, так как write&read > read, то peter (admin, user) - фактически будет админом
с точки зрения прав на объекты.
Когда мы удаляем admin из его роли, то права с шаблона admin убираются, а потом делается
"пересчет"/перезапись прав которые теперь имеет с точки зрения оставшейся роли - user

Когда мы руками правим его permission, например, ставим guestbook(write&read), price(read)
то фактически мы не попадаем под шаблон - это означает лишь одно - пользователь peter имеет
custom permission. С точки зрения интерфейса это можно обозначить как угодно - например
peter (*modified) или взять последнюю примененную роль и сказать: peter = Admin(m)

Ответим, зачем и когда нам нужны роли и/или custom'ные права.
1. Роли нужны для того, чтобы не иметь гиммора с ручным проставлением атомарных прав каждому
юзверю.

2. Custom'ное изменение прав нужно для гибкости в случаях единичных исключений - когда
конкретному пользователю необходимо сделать права, не попадающие 100% под шаблон роли

3. И последнее, когда в процессе эксплуатации появляются пользователи с одинкаковыми и нешаблонными правами - это признак завести новую Роль, под котороую они уже будут попадать.

P.S.:
Если я не ответил на вопрос, то перенесите этот пост куда нить, жалко писал столько. =)
...
Рейтинг: 0 / 0
Структура данных для раздачи прав доступа
    #35503328
SunVegas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще, возможно вы путаете Роли с Группами?
...
Рейтинг: 0 / 0
Структура данных для раздачи прав доступа
    #35503427
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SunVegasИ еще, возможно вы путаете Роли с Группами?

Нет не путаю - имеем приложения ASP.NET доступ к которым имеем по ролям - осюда понятие роли как набор функций организованных в виде приложения
...
Рейтинг: 0 / 0
Структура данных для раздачи прав доступа
    #35503584
SunVegas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О... мля... asp... .net... ms... - извините, наверное я оффтоп. Не дружу генетически со сферой MS.
...
Рейтинг: 0 / 0
Структура данных для раздачи прав доступа
    #35515350
Sinix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант, сделайте id пользователей нечётными, ролей - чётными)))

P.S. Очень не советую заигрывать с приоритетами разрешений (например, Write имеет больший приоритет, чем Read) - бывают разрешения, которые в одну цепочку ну никак не влазят. Как правило, мы заводим словарик пресетов с битовыми масками и используем эти пресеты как разрешения. Высчитывать действующие разрешения - одно удовольствие)

P.P.S. самое весёлое начинается, когда требуется разруливать наследование разрешений по иерархии - дерзайте)
...
Рейтинг: 0 / 0
Структура данных для раздачи прав доступа
    #35515400
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SinixP.P.S. самое весёлое начинается, когда требуется разруливать наследование разрешений по иерархии - дерзайте)
+ по иерархии объектов. Это лучше сделать заранее :)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура данных для раздачи прав доступа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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