Безопасность базы данных сервера SQL на уровне приложений? - PullRequest
0 голосов
/ 31 октября 2011

Я использую приложение C # и подключение к базе данных, используя sql server 2008, используя проверку подлинности Windows. Я создал несколько пользователей для базы данных, но я не могу понять, как их использовать на уровне приложения. Моя цель - установить это приложение на любом компьютере и сделать базу данных недоступной для пользователей, если он попытается установить sql management studio.

Может кто-нибудь объяснить или дать мне какие-нибудь хорошие ссылки, чтобы понять, что я хочу сделать?

1 Ответ

1 голос
/ 31 октября 2011

Если вы хотите убедиться, что пользователи не могут получить доступ к БД без вашего приложения, у вас есть несколько вариантов:

  • реализовать «виртуальных пользователей»Это означает, что вы реализуете свое собственное управление пользователями и не создаете реальных пользователей БД для пользователей своего приложения, а только «виртуальных пользователей» в своей собственной структуре ... ваше приложение будет использовать обычного пользователя приложения для доступа к БД, который неизвестен вашемупользователи ... поскольку пользователи приложения не являются настоящими пользователями БД, они не могут получить доступ к БД напрямую со своими пользователями / pw.

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

ВНИМАНИЕ, что ни один извышеописанное на 100% безопасно, поскольку ваше .NET-приложение всегда можно декомпилировать / анализировать и т. д., хотя вышеприведенного вполне достаточно, чтобы заблокировать «обычным пользователям» прямой доступ к БД ...

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