|
|
su.dbms- SU.DBMS ---------------------------------------------------------------------- From : Igor Dombrovan [] 2:5020/400 16 Dec 2002 19:16:00 To : Gregory Kudinov Subject : Re: Права доступа на уровне записей -------------------------------------------------------------------------------- > Здравствуйте, уважаемые! > > Вот вопрос возник по созданию БД. > > Есть пользователи - менеджеры. Менеджеры ведут проекты (отношение многие ко > многим). > При этом менеджер должен видеть только свои проекты (чтобы жаба не душила > ;-) > Функциональное требование: менеджер видит только данные по проектам > (это просто) и среди данных по проектам видит только те проекты, в которых > он участвует. > А остальных проектов как будто нет. И если он даже используя другое ПО > подключался > бы к серверу для своей учетной записи - все равно бы видел только свои > проекты. > > Интересует MS SQL Server в первую очередь, но интересно узнать и про другие > СУБД. > > В СУБД обычно присутствует некоторый механизм авторизации доступа. > Он как нибудь распространяется на отдельные записи внутри таблиц? Или > минимальным > объектом защиты является таблица (представление, хранимая процедура ...) ? > Как ограничить доступ пользователю определенными записями таблицы в > MS SQL Server например? > > Hе писать же стандартный набор view по отдельности под каждого пользователя > с привязкой > прав доступа к этим view... > > Или это все-таки надо/придется делать на уровне программной логики через > WHERE clause? > > Как такие вещи делаются по умному? Я делал нечто подобное. Завел таблицу USR, в нее поместил всех пльзователей и определил их права. Для каждого завел т.н.уровень доступа. В других таблицах завел поля OWNER (код юзера), т.е. кто создал запись. А в триггере условие, что запись может быть изменена или удалена только тем, кто ее создал или у кого уровень выше. При записи поле OWNER автоматически обновляется. Т.о. система "продвижения" строк вверх по иерархии (многоуровневые проверки). Hекоторым уровням в некоторые таблицы вообще писАть нельзя. А просмотр только своих - это через VIEW. Соответственно на таблицу SELECT прав не давать. Да, делалось все это на Firebird/Delphi. Игорь --- ifmail v.2.15dev5 * Origin: Combellga (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms/26203ac87c4d.html, оценка из 5, голосов 10
|