![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
BlackLFL |
|
||||||||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 15.9.2005 Где: Москва Репутация: нет Всего: 12 |
Добрый день!
Программа разрабатывается под web, будет работать от имени основного пользователя, который имеет доступ ко всем таблицам проекта, а все остальные "пользователи" будут виртуальными => как, предположим, на любом форуме... мы же не регистрируем их в Б.Д, а просто заносим в таблицу, например, members. Программа, имеет десятки классов, к методам которых предоставляется доступ на основе привелегий к таблицам Б.Д. Например, есть класс proprietor, в его подчинение ( на уровне программы ) таблицы: proprietor proprietor_xxx proprietor_stats Если пользователь имеет привелегию select к таблице proprietor, соответственно ему будет позволено пользоваться методом proprietor.view, если имеет привелегию update, то proprietor.edit, и т.п. Соответственно, нам необходимо спроектировать разграничение доступа для наших виртуальных пользователей. Привелегии будут даваться на основе ролей, роль в свою очередь может наследовать привелегии другой роли. Предполагаю, что структура таблицы для ролей будет следующая:
И таблица предоставленных пользователю ролей.
Создаем роль default_role, которая будем иметь привелегию select к всей таблицы proprietor, proprietor_xxx
Если мы хотим предоставить пользователю привелегии роли default_role, нам необходимо в таблицу members_priv сделать insert с значениями ID пользователя, имя роли.
Тут думаю все предельно просто ... Вопрос для меня в следующем, как правильно спроектировать наследование ролей. Предположим есть вторая роль second_role, она имеет привелегию update к таблице proprietor_stats.
Теперь попробуем наследовать ролью default_role привелегии роли second_role , для этого создаим третью таблицу members_roles_inheritance
Думаю структура на первый взгляд логична ... Теперь усложним, предположим роль second_role наследует привелегии роли third_role
Получается, что теперь роль default_role имеет привелегии ролей second_role, third_role. Как Вы думаете, насколько данная структура имеет право на жизнь? Для меня очень серьезным вопросом остается, как мне потом получить все привелегии для пользователя, если роль наследует роль, та роль в свою очередь наследует еще роль как было показано выше?! Заранее благодарен за помощь и любые комментарии! п.с. в коде использован sql код создания таблиц под oracle, это не говорит о том, что я разрабатываю структуру под него, там уже все давно реализовано ... с помощью sun инструментов, мне лишь удобнее тестировать код. Это сообщение отредактировал(а) BlackLFL - 23.10.2007, 14:01 |
||||||||||||||||||
|
|||||||||||||||||||
![]() ![]() ![]() |
Правила форума "Общие вопросы по базам данных" | |
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |