![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Разграничение доступа к записи [D6, MSSQL]
dim- © (2004-05-27 12:06:00)Народ посоветуйте как лучьше
Необходимо организовать разграничение доступа к записям, т.е. одна запись для одного пользователя отображается, а для другого нет. например: одну запись могут смотреть 10 пользователей, другую 5, третью все.
paul_k (2004-05-29 14:37:00) [1]
> dim- © (29.05.04 01:39) [14]
запросами, естественно.
плюс смотреть на
> paul_k © (27.05.04 13:38) [6]
> Сергей Суровцев © (29.05.04 02:08) [15]
И, наверное, Вам придется перестроить всю структуру БД.
Сергей Суровцев (2004-05-29 02:08:00) [2]>dim- © (29.05.04 01:39) [14]
>с четкой иерархией понятно, как это реализовать средствами sql
В такой иерархии никак, потому что ты привязываешся к пользователям информации. И если завтра будет введена еще одна группа, то ее права придется определять для всех данных заново, либо приравнивать к одной из существующих групп.
Правильная иерархия - типизирование самих данных. То есть данные какого типа может видеть какая группа. Вот тогда для программиста полная свобода выбора.
dim- (2004-05-29 01:39:00) [3]с четкой иерархией понятно, как это реализовать средствами sql
paul_k (2004-05-28 17:18:00) [4]Группы пользователей.
Роли.
Четкая иерархия пользователей.
и так далее
пример
1.
Если документ вводит Вася то у Васи есть доступ на редактирование и просмотр.
у руководителя Васи есть доступ на просмотр
и так далее вверх.
2.
Если документ вводит Вася то у Васи есть доступ на редактирование и просмотр.
У членов группы, в которую входит Вася есть доступ на просмотр
у руководителя Васи есть доступ на просмотр и изменение статуса
и так далее вверх.
dim- (2004-05-28 16:19:00) [5]а как сделать чтобы записи могли видеть все по направлению
например:
Направление - "Торговый зал"
отдел - "Менеджеры"
- Иванов
- Петров
- "Продавцы"
- Сидоров
- Федоров
Доступ дан "Торговый зал", а я Петров и должен видеть.
Sandman25+1 (2004-05-28 12:50:00) [6][9] dim- © (28.05.04 00:13)
Это можно реализовать замещением. Для пользователя указывается, кого он замещает, то есть чьи записи он может видеть.
dim- (2004-05-28 11:50:00) [7]может кто хоть статейки на тему видел?
dim- (2004-05-28 00:13:00) [8]По поводу автоматизации как раз проблем нет. При создании записи сразу добовлять автора и можно группу, а дальше если еще кому нужен доступ, это может сделать и пользователь. Проблема в другом, если сотрудник уволился то новому нужно дать доступ к тем же записям. Получается надо давать доступ должности или подразделению.
При построении запроса имеем код должности, если есть разрешение для должности проблем нет, а если для подразделения или всего направления, как тогда?
Skyle (2004-05-27 13:58:00) [9]Может кто не понял, но я нисколько не против варианта
> Vlad © (27.05.04 13:16) [3]
. Это один из самых железных способов получить то, что нужно. Просто возникла мысль, что так туманно заданный вопрос можно решить проще. Идея предложенная мной реализуема только в случае возможности алгоритмизации разделения данных по группам пользователей (чтобы была возможность написать/сформировать запрос, создающий этот самый VIEW).
DenK_vrtz (2004-05-27 13:45:00) [10]>dim- © (27.05.04 12:06)
В лоб такие задачи не решаются.
Должна быть жестко продумана политика администрирования системы и разграничения прав доступа к данным.
см., как вариант, Vlad © (27.05.04 13:16) [3].
>Skyle © (27.05.04 13:20) [4]
>Администратор не вздёрнется? :-)
так на то он и администратор :)
paul_k (2004-05-27 13:38:00) [11]Vlad © (27.05.04 13:23) [5]
ну, если реализовать ещё типы документов, статусы и так далее то можно и автоматизировать часть этого процесса при вводе.
к типу А в статусе Б имеет доступ группа С и так далее..
Vlad (2004-05-27 13:23:00) [12]
> Skyle © (27.05.04 13:20) [4]
Ну всё равно кто-то должен вручную проставлять какие-то ограничения, при любом раскладе. Автоматически ведь это не реализуешь
Skyle (2004-05-27 13:20:00) [13]
> в каждой записи проставлять идентификатор группы
Администратор не вздёрнется? :-)
Мне его уже жаль...
Хотя тут всё зависит, конечно, от количеств групп и записей.
Vlad (2004-05-27 13:16:00) [14]
> dim- © (27.05.04 12:06)
ИМХО, тут надо создавать таблицу пользователей и групп пользователей, и затем уже в основной таблице, в каждой записи проставлять идентификатор группы
Skyle (2004-05-27 13:12:00) [15]А create view не подойдёт?
Vit@ly (2004-05-27 12:28:00) [16]Добавь соответствующее поле в таблицу с идетификатором пользователя и фильтруй. Или выстави пользователям соответсвующий статус (это слегка сократит количество состояний этого поля).