powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Система разграничения прав доступа
9 сообщений из 34, страница 2 из 2
Система разграничения прав доступа
    #36837435
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В простейшем случае, за безопасность и права в задаче могут отвечать от 2 до 4 таблиц. Типа : Users (пользователи), Groups (группы), Tasks (задачи), Privileges(привилегии). Можно в крайнем случае упростить до 2 таблиц (Users - Privileges). Поля атрибутов - строковые. На этом этапе, дизайн БД можно уже не изменять, лишь добавлять нужные привилегии и задачи. Клиент будет (или должен) "по своему" интерпретировать содержимоее этих таблиц и показывать/(не показывать) контролы и формы.
...
Рейтинг: 0 / 0
Система разграничения прав доступа
    #36837437
NetSqlAzMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В NetSqlAzMan разграничение прав доступа на основе операций достаточно прозрачно интегрируется с элементами управления экранных форм и внешними БД. С егопомощью в Winforms(SCSF) или WPF/SL несложно сделать активацию\деактивацию\скрытие кнопок, изменение инетерфейса
...
Рейтинг: 0 / 0
Система разграничения прав доступа
    #36837469
MAYAKOV_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman39Не всегда удается предусмотреть все возможные объекты к которым следует ограничить доступ на этапе проектирования ПО.
Это и понятно, а куда от этого дется-то? Есть ли универсальное средство от всех проблем?
Я думаю нет.
Надо добавить доступ - if AppPolicy.GetDostup(...) {делаем, что-то}
И все. При отладке можно сделать доступ ADMIN - и тогда будет полный доступ. А когда нужно будет делать для группы доступа, тогда и добавляются записи в таблицы. Не вижу трудностей в сопровождении.
...
Рейтинг: 0 / 0
Система разграничения прав доступа
    #36838095
Roman39В принципе весь вопрос сводится к централизованному разграничению прав доступа, что бы максимально облегчить процесс сопровождения программы.
КМК, это не очень хорошая мысль. Доступ к таблицам действительно лучше регулировать централизовано, а к отдельным полям (и соотв. интерфейсным элементам) наоборот. Легче работать в рамках отдельного модуля (или формы) приложения
...
Рейтинг: 0 / 0
Система разграничения прав доступа
    #36838106
Roman39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как лучше описывать в таблице разграничиваемы функции? Надо чтобы и пользователю (администратору) было удобно раздавать привелегии и при разработке чтобы каши не было. Ну скажем для администратора можно ввести описательное поле, чтобы была понятна суть операции. А что лучше выбрать в качестве идентификатора операции? Или другими словами какой строкой удобнее идентифицировать конкретную операцию.
...
Рейтинг: 0 / 0
Система разграничения прав доступа
    #36838194
MAYAKOV_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman39А как лучше описывать в таблице разграничиваемы функции? Надо чтобы и пользователю (администратору) было удобно раздавать привелегии и при разработке чтобы каши не было. Ну скажем для администратора можно ввести описательное поле, чтобы была понятна суть операции. А что лучше выбрать в качестве идентификатора операции? Или другими словами какой строкой удобнее идентифицировать конкретную операцию.
Все зависит от того как вы всю систему построете.
Если у вас есть слой бизнес-логики, то там можно регулировать доступ.
Администратор, например, в объекте "работник" уберет флажок "показывать оклад". И значит во всех формах должны отсутствовать поля с окладами и кнопки для просмотра окладов.
При таком подходе доступ нужно продумывать вместе с проектом.
Хотя никто не мешает рефакторингом заниматься.
Если нет, то тогда придется "регулировать" формы.
Администратору можно будет предоставить древовидную структуру, для простоты настройки.
Например форма, а внутри - список функций либо список имен объектов.

В общем, нет универсального подхода, все затачивается под конкретный проект.
Но лучше продумать и оценить все заранее, иначе могут быть следующие проблемы:
1) слишком сложная система, затрудняющая разработку/сопровождение.
2) слабая система. В результате может возникнуть такая ситуация невозможности реализации разграничения доступа на какие-то операции, без серьезной переделки проекта, в связи с непродуманностью на стадии проектирования.
...
Рейтинг: 0 / 0
Система разграничения прав доступа
    #36838713
Такой подход предполагает частую настройку доступа. Если же права настраиваются редко (или никогда), то админу ненадо вмешиваться.
Приведу пример из области медицинских систем. Права на доступ к документам (таблицам/формам) могут меняться и настраиваются админами.
Но в любых документах: группам врачей и медсестер никогда нельзя видеть напр. цены медикаментов, группа медсестер никогда не может делать назначения. И тд.
Это решается при разработке формы.
...
Рейтинг: 0 / 0
Система разграничения прав доступа
    #36838956
MAYAKOV_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
УнрегистередТакой подход предполагает частую настройку доступа. Если же права настраиваются редко (или никогда), то админу ненадо вмешиваться.
Приведу пример из области медицинских систем. Права на доступ к документам (таблицам/формам) могут меняться и настраиваются админами.
Но в любых документах: группам врачей и медсестер никогда нельзя видеть напр. цены медикаментов, группа медсестер никогда не может делать назначения. И тд.
Это решается при разработке формы.
Почему частую?
Группы доступа - врачь, медсестра. Хранятся в базе. К каждой группе привязаны настройки доступа по поводу цен и возможности назначения, видимости кнопок и.т.д.
Админу нужно подключить нового пользователя - медсестра.
Он для данного пользователя, подключает группу доступа "медсестра" и все. Мелких настроек на кнопки он не делает. Все просто.
...
Рейтинг: 0 / 0
Система разграничения прав доступа
    #36838987
MAYAKOV_SV, можно и так. Но для этого нужно хранить в специальной таблице какие-то указатели на объекты приложения (формы, контролы и т.д.). Либо тупо хранить указатели на все объекты (при настройке за...ешься искать), либо контролы на формах надо разбросать по своим группам/функциям и ссылаться на них. Но эти группы должны быть опрделенны при проектировании.

А подход с ограничениями на уровне отдельных контролов на форме (свойство со списком групп польователей, имеющих доступ), КМК, значительно проще и очень редко требует модификации при заведении новых групп (почти никогда). И таких элементов, с разграниченым доступом, вообще очень мало.
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Система разграничения прав доступа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]