Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Грамотная настройка ролей, Firebird 
:(
    Опции темы
former
Дата 11.3.2008, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 1
Всего: 17



БД Firebird 2.0 для доступа к которой используются компоненты FIBPlus.
Предполагается три уровня доступа (три роли): администратор, редакторы и пользователи.
В пустой БД одна таблица - "Типы устройств", редактировать которую могут только администратор и редактор. При добавлении записи в неё, создаются две таблицы: "Список изделий" и "Список параметров". В сою очередь, при добавлении записи в таблицу "Список изделий" создается ещё одна таблица "Характеристики".

Вопрос заключается в следующем. Как автоматически (Без использования менеджеров типа IBExpert) предоставлять права на создание/удаление/редактирование для каждой группы при создании таблиц, а так же генераторов, процедур, триггеров и индексов? Т.е., например, таблица "Характеристики", созданная при добавлении записи одним редактором в таблицу "Список изделий", могла быть отредактирована или удалена другим редактором вместе со связанными с нею триггером, генератором, процедурой и индексом. Или, например, если аналогичное проделывает админ БД (не SYSDBA), то редакторы могли бы удалить.

С клиент-серверными БД только начал работать. Посоветуйте, как грамотно организовать политику доступа и управления.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Deniz
Дата 11.3.2008, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Создавать/удалять объекты БД(таблицы, триггеры, процедуры и т.д.) во время работы программы не хорошо.
Проектировать БД надо сразу.
Раздача прав возможна на уровне БД grant/revoke, но если доступ к записи определяется из ее содержимого, то придется писать свою систему прав и анализировать это в бизнес логике. Логика может быть как на клиенте, так и на сервере, т.е. в хранимой процедуре.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
former
Дата 11.3.2008, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 1
Всего: 17



Цитата(Deniz @  11.3.2008,  13:06 Найти цитируемый пост)
Создавать/удалять объекты БД(таблицы, триггеры, процедуры и т.д.) во время работы программы не хорошо.
Проектировать БД надо сразу.


Сам уже в этом убедился. Удобно конечно, но слишком много гемороя с правами.


Цитата(Deniz @  11.3.2008,  13:06 Найти цитируемый пост)
Раздача прав возможна на уровне БД grant/revoke, но если доступ к записи определяется из ее содержимого, то придется писать свою систему прав и анализировать это в бизнес логике. Логика может быть как на клиенте, так и на сервере, т.е. в хранимой процедуре.


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

Только вот наткнулся на такую же тему про пользователей.

Дело ещё в том, что я пробовал создавать/удалять объекты БД(таблицы, триггеры, процедуры и т.д.) разными пользователями, но ошибка всегда ссылалась на отсутствие прав на удаление индекса, а таблицы удалялись нормально.

Это сообщение отредактировал(а) former - 11.3.2008, 13:26


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Deniz
Дата 11.3.2008, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Цитата(former @  11.3.2008,  16:19 Найти цитируемый пост)
Сам уже в этом убедился. Удобно конечно, но слишком много гемороя с правами.
не так уж и много.
Ты сам даешь пользователю права на select а уже в программе/ХП определяешь должна попадать запись к пользователю или нет.
С insert/update/delete примерно тоже самое. Например, в триггере перед удалением проверяешь есть ли права у этого пользователя удалить эту запись, и если нет Exception.
Все таки я склоняюсь к бизнес-логике на хранимых процедурах.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0908 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.