Re: Разграничить права доступа пользователей
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 19.08.03 05:52
Оценка: 4 (3)
Здравствуйте, Cokkab, Вы писали:

C>Как это правильнее сделать? Как это вообще делают?


Ну теория в общем то простая — существуют два способа задания прав.

1) По пользователям. В этом случае каждому объекту, на который нужно задавать права, ставится в соответствие список пользователей, имеющих к нему доступ. Если объект имеет несколько уровней доступа то, помимо собственно идентификатора пользователя, указывается уровень доступа.

2) По ролям. Вводится некая сущность, называемая ролью. Права и уровни доступа на объекты назначаются не пользователям, а ролям. А пользователям назначается список ролей.

Собственно и вся теория. Сложность в практике.
На практике подход 1 в чистом виде как правило не применяют, разве что пользователей совсем мало ( < 10). Подход 2 является простейшим вариантом и частенько применяется там где разработчикам не хватило желания или средств реализовывать полноценную защиту, либо структура защищаемых данных проста. В более-менее приличных системах используется комбинация обоих подходом, т.е. в списке доступа объекта могут присутствовать как роли так и конкретные пользователи.
Главная же сложность в собственно контроле. Здесь надо определиться прежде всего с минимальным объектом, по которому необходимо контролировать права. Понятно что заказчик чаще всего будет требовать очень низкий уровень задания прав, частенько народ очень хочет чтобы права контролировались по кждой записи таблицы. К сожалению такой уровень контроля для современных железок не приемлем из-за слишком высоких накладных расходов. Так что здесь надо искать золотую середину между атомарностью контроля и потерями производительности.
... << RSDN@Home 1.1 beta 1 >>
AVK Blog
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.