Каков наилучший способ управления разрешениями для настольных приложений баз данных? - PullRequest
1 голос
/ 10 августа 2010

Многие настольные приложения используют таблицы SQL для управления разрешениями и ролями своих пользователей. Фактически они ограничивают доступ к некоторым частям приложения в своем коде приложения. Это означает, что им нужна постоянная строка подключения к серверу SQL с максимальными разрешениями.

Моя цель - C # 2010, Sql Server 2005 или 2008.

Что если по какой-либо причине кто-то найдет эту строку подключения (трассировка сети, взлом программного обеспечения, уволенный сотрудник или ...), он может изменить все с помощью только Managemenst Studio, и вы не сможете понять, какой клиент это сделал. Если вы хотите изменить строку подключения. Вы должны сделать это во многих клиентах, и при плохом дизайне вам нужно перекомпилировать приложение.

Итак, я хочу знать, является ли хорошей идеей использовать реальный вход в SQL вместо имени пользователя и пароля в таблицах? сделать строку подключения для каждого пользователя с помощью логинов SQL?

Таким образом, можно не бояться потерять строку подключения. Также в кодах SQL вы можете использовать функцию GetUser (), чтобы указать, какой пользователь действительно выполнил запрос?

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

В одном длинном предложении. Я хочу знать, Каков наилучший способ аутентификации пользователей настольных приложений, позволяющий управлять разрешениями, а также SQL Server может регистрировать активность пользователей?

Ответы [ 3 ]

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

По возможности используйте проверку подлинности Windows.

Определение ролей. Добавить группы в роли. Добавление пользователей в группы (согласно обычному способу управления разрешениями файловой системы в Windows).

Выбор режима аутентификации

См .: Роли приложений

0 голосов
/ 10 августа 2010

Для лучшей безопасности вам нужна одна выделенная учетная запись базы данных на пользователя;каждая учетная запись должна иметь только те привилегии, которые необходимы для задач, которые может выполнять соответствующий пользователь.Обычно вы предоставляете права ролям (например, «клерк», «менеджер», «супервизор») и предоставляете эти роли пользователям.Очевидно, что требуется определенная работа, чтобы определить, какие привилегии нужны каждой роли.Во многих случаях может быть необходимо не разрешать прямой доступ к некоторым таблицам, а только к представлениям базы данных, которые скрывают некоторые части, которые не должны быть видны этой роли, или к хранимым процедурам, которые выполняют некоторые дополнительные проверки и проверяют, что каждая транзакцияобрабатывается целиком.

0 голосов
/ 10 августа 2010

Вы можете зашифровать конфиденциальные разделы вашего файла app.config. В прошлый раз, когда я проверял, вам нужно пройти через несколько обручей, но это не так сложно настроить.

См. Например этот вопрос

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