Независимое от базы данных решение безопасности на уровне строк - PullRequest
3 голосов
/ 16 июня 2010

Кто-нибудь знает о библиотеке авторизации, независимой от базы данных Java / C #?Эта библиотека должна поддерживать операции чтения, записи, удаления и вставки в организационной структуре компании.

Примерно так:
- пользователь может видеть все документы
- пользователь может вводить новый документ, назначенный его устройству
- пользователь может изменять все документы, назначенные его устройству и всем подчиненным подразделениям.
- пользователь может удалять назначенные ему документы

Я также должен иметь возможность создавать настраиваемые действия (помимо чтения, записи, ...), подключать их к определенному классу и назначать этот «токен безопасности»пользователю (например, document.expire).Если нет ни бесплатных, ни коммерческих библиотек, есть ли книга, которая может быть полезна для реализации этой функции?

Спасибо.

Ответы [ 3 ]

1 голос
/ 16 августа 2010

Проблема с внедрением вашего решения безопасности в вашей клиентской библиотеке состоит в том, что оно эффективно только с клиентским инструментом.Само по себе это звучит довольно ОЧЕНЬ, но вы оставляете открытой огромную дыру в безопасности, которая представляет собой саму базу данных.Поэтому, если пользователь подключается напрямую к базе данных (например, используя Access ADP к SQL Server), он имеет полный контроль над своей ролью пользователя.Для чего им потребуется полный доступ ко всему в базе данных, если вы делаете свои ограничения в клиентской библиотеке.

Единственный случай, когда это не будет такой большой проблемой, будет с веб-приложениями и веб-службами.,Если бы ваш веб-сервис обеспечивал безопасность и скрывал его за интерфейсом веб-службы (поэтому прямого доступа к базе данных не было), то это было бы безопасно.Это может быть то, о чем вы говорите, но не указали в своем вопросе.

Если вы используете толстый клиент, есть ли причина, по которой вы не захотите использовать логику безопасности на стороне базы данных?Вы упомянули независимость от базы данных, но ничего из того, что вы указали, будет трудно обеспечить на каждой платформе.Вы в основном описываете пред- / пост-триггеры, которые проверяют, есть ли у пользователя права на редактирование записи.Полный RLS также ограничил бы права пользователя на просмотр и немного усложнил бы работу в зависимости от платформы.

1 голос
/ 01 февраля 2011

Меня тоже удивляет отсутствие систем безопасности.

Существует Rhino Security . У Айенде есть несколько сообщений в блоге об этом .

В другом блоге тоже есть пара из статей .

Можно использовать и с S # arp Architecture .

Не могу сказать, что я реализовал это в проекте, просто прочитал об этом некоторое время назад. Это была единственная реализация такого рода, которую я смог найти.

1 голос
/ 18 июня 2010

Я нашел одну библиотеку, функциональность которой соответствует моим потребностям:

http://www.codeproject.com/KB/database/AFCAS.aspx

Странно, что его больше нет в сети, поскольку с этой проблемой сталкивается каждое серьезное приложение. Что касается документации / примера, то лучшее, что я нашел, это модули авторизации систем CRM, такие как:
- Siebel - Руководство по безопасности Siebel - Глава 10. Контроль доступа
- Сахар CRM - http://www.sugarcrm.com/crm/products/capabilities/administration/access.html
- Microsoft CRM - http://msdn.microsoft.com/en-us/library/ms955698.aspx

Мне нужна такая функциональность. Я предполагаю, что это будет самостоятельная задача.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...