|
|
|
Система разграничения прав доступа
|
|||
|---|---|---|---|
|
#18+
В простейшем случае, за безопасность и права в задаче могут отвечать от 2 до 4 таблиц. Типа : Users (пользователи), Groups (группы), Tasks (задачи), Privileges(привилегии). Можно в крайнем случае упростить до 2 таблиц (Users - Privileges). Поля атрибутов - строковые. На этом этапе, дизайн БД можно уже не изменять, лишь добавлять нужные привилегии и задачи. Клиент будет (или должен) "по своему" интерпретировать содержимоее этих таблиц и показывать/(не показывать) контролы и формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 10:34:03 |
|
||
|
Система разграничения прав доступа
|
|||
|---|---|---|---|
|
#18+
В NetSqlAzMan разграничение прав доступа на основе операций достаточно прозрачно интегрируется с элементами управления экранных форм и внешними БД. С егопомощью в Winforms(SCSF) или WPF/SL несложно сделать активацию\деактивацию\скрытие кнопок, изменение инетерфейса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 10:35:26 |
|
||
|
Система разграничения прав доступа
|
|||
|---|---|---|---|
|
#18+
Roman39Не всегда удается предусмотреть все возможные объекты к которым следует ограничить доступ на этапе проектирования ПО. Это и понятно, а куда от этого дется-то? Есть ли универсальное средство от всех проблем? Я думаю нет. Надо добавить доступ - if AppPolicy.GetDostup(...) {делаем, что-то} И все. При отладке можно сделать доступ ADMIN - и тогда будет полный доступ. А когда нужно будет делать для группы доступа, тогда и добавляются записи в таблицы. Не вижу трудностей в сопровождении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 10:46:38 |
|
||
|
Система разграничения прав доступа
|
|||
|---|---|---|---|
|
#18+
Roman39В принципе весь вопрос сводится к централизованному разграничению прав доступа, что бы максимально облегчить процесс сопровождения программы. КМК, это не очень хорошая мысль. Доступ к таблицам действительно лучше регулировать централизовано, а к отдельным полям (и соотв. интерфейсным элементам) наоборот. Легче работать в рамках отдельного модуля (или формы) приложения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 14:38:31 |
|
||
|
Система разграничения прав доступа
|
|||
|---|---|---|---|
|
#18+
А как лучше описывать в таблице разграничиваемы функции? Надо чтобы и пользователю (администратору) было удобно раздавать привелегии и при разработке чтобы каши не было. Ну скажем для администратора можно ввести описательное поле, чтобы была понятна суть операции. А что лучше выбрать в качестве идентификатора операции? Или другими словами какой строкой удобнее идентифицировать конкретную операцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 14:40:00 |
|
||
|
Система разграничения прав доступа
|
|||
|---|---|---|---|
|
#18+
Roman39А как лучше описывать в таблице разграничиваемы функции? Надо чтобы и пользователю (администратору) было удобно раздавать привелегии и при разработке чтобы каши не было. Ну скажем для администратора можно ввести описательное поле, чтобы была понятна суть операции. А что лучше выбрать в качестве идентификатора операции? Или другими словами какой строкой удобнее идентифицировать конкретную операцию. Все зависит от того как вы всю систему построете. Если у вас есть слой бизнес-логики, то там можно регулировать доступ. Администратор, например, в объекте "работник" уберет флажок "показывать оклад". И значит во всех формах должны отсутствовать поля с окладами и кнопки для просмотра окладов. При таком подходе доступ нужно продумывать вместе с проектом. Хотя никто не мешает рефакторингом заниматься. Если нет, то тогда придется "регулировать" формы. Администратору можно будет предоставить древовидную структуру, для простоты настройки. Например форма, а внутри - список функций либо список имен объектов. В общем, нет универсального подхода, все затачивается под конкретный проект. Но лучше продумать и оценить все заранее, иначе могут быть следующие проблемы: 1) слишком сложная система, затрудняющая разработку/сопровождение. 2) слабая система. В результате может возникнуть такая ситуация невозможности реализации разграничения доступа на какие-то операции, без серьезной переделки проекта, в связи с непродуманностью на стадии проектирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 15:15:28 |
|
||
|
Система разграничения прав доступа
|
|||
|---|---|---|---|
|
#18+
Такой подход предполагает частую настройку доступа. Если же права настраиваются редко (или никогда), то админу ненадо вмешиваться. Приведу пример из области медицинских систем. Права на доступ к документам (таблицам/формам) могут меняться и настраиваются админами. Но в любых документах: группам врачей и медсестер никогда нельзя видеть напр. цены медикаментов, группа медсестер никогда не может делать назначения. И тд. Это решается при разработке формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 18:32:28 |
|
||
|
Система разграничения прав доступа
|
|||
|---|---|---|---|
|
#18+
УнрегистередТакой подход предполагает частую настройку доступа. Если же права настраиваются редко (или никогда), то админу ненадо вмешиваться. Приведу пример из области медицинских систем. Права на доступ к документам (таблицам/формам) могут меняться и настраиваются админами. Но в любых документах: группам врачей и медсестер никогда нельзя видеть напр. цены медикаментов, группа медсестер никогда не может делать назначения. И тд. Это решается при разработке формы. Почему частую? Группы доступа - врачь, медсестра. Хранятся в базе. К каждой группе привязаны настройки доступа по поводу цен и возможности назначения, видимости кнопок и.т.д. Админу нужно подключить нового пользователя - медсестра. Он для данного пользователя, подключает группу доступа "медсестра" и все. Мелких настроек на кнопки он не делает. Все просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 21:47:53 |
|
||
|
Система разграничения прав доступа
|
|||
|---|---|---|---|
|
#18+
MAYAKOV_SV, можно и так. Но для этого нужно хранить в специальной таблице какие-то указатели на объекты приложения (формы, контролы и т.д.). Либо тупо хранить указатели на все объекты (при настройке за...ешься искать), либо контролы на формах надо разбросать по своим группам/функциям и ссылаться на них. Но эти группы должны быть опрделенны при проектировании. А подход с ограничениями на уровне отдельных контролов на форме (свойство со списком групп польователей, имеющих доступ), КМК, значительно проще и очень редко требует модификации при заведении новых групп (почти никогда). И таких элементов, с разграниченым доступом, вообще очень мало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 22:18:44 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36838095&tid=1343469]: |
0ms |
get settings: |
4ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
173ms |
get topic data: |
8ms |
get forum data: |
1ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 442ms |

| 0 / 0 |
