Многие настольные приложения используют таблицы SQL для управления разрешениями и ролями своих пользователей. Фактически они ограничивают доступ к некоторым частям приложения в своем коде приложения. Это означает, что им нужна постоянная строка соединения для SQL-сервера с максимальными разрешениями.Каков наилучший способ управления разрешениями настольных приложений базы данных?
Моя цель C# 2010, SQL Server 2005 или 2008.
Что делать, если с какой-либо причине кто-то найти эту строку соединения? (Трассировка сети, взлом программного обеспечения, Уволен сотрудник или ...), он может изменить все с помощью только Managemenst Studio, и вы не можете понять, какой клиент это сделал. Если вы хотите изменить строку соединения. Вы должны сделать это во многих клиентах и в плохом дизайне вам нужно перекомпилировать приложение.
Так что я хочу знать, стоит ли использовать реальный SQL-логин вместо имени пользователя и пароля в таблицах? создать строку соединения для каждого пользователя с помощью логинов SQL?
Таким образом, нет страха потерять соединительную строку. Также в кодах SQL вы можете использовать функцию GetUser(), чтобы указать, какой пользователь действительно выполнил запрос?
Но, возможно, разрешение управления затруднено таким образом, потому что нет простой таблицы для управления разрешениями и пользователями.
В одном длинном предложении. Я хочу знать. Каков наилучший способ аутентификации пользователей настольных приложений таким образом, чтобы можно было управлять разрешением на управление, а также сервер sql мог регистрировать активность пользователя?
Проверка подлинности Windows означает, что каждый пользователь должен быть добавлен в базу данных. Не очень удобное решение в этом сценарии ... – jeroenh
@jeroenh: Аутентификация Windows на SQL может использовать группы безопасности. Вам не нужно добавлять каждого пользователя отдельно (и многие организации уже будут иметь подходящие группы). –