C # и SQL Server аутентификация - PullRequest
6 голосов
/ 27 мая 2010

В настоящее время я занимаюсь разработкой приложения на C # с серверной частью БД SQL Server. Я подхожу к точке развертывания и сталкиваюсь с проблемой. Приложение будет развернуто в сети активных каталогов. Что касается аутентификации SQL, я понимаю, что у меня есть 2 варианта - Аутентификация Windows или Аутентификация сервера.

Если я использую Аутентификацию на сервере, я обеспокоен тем, что имя пользователя и пароль для учетной записи будут сохранены в виде простого текста в файле app.config, и, следовательно, оставят уязвимой базу данных.

Использование Windows Authenticaiton позволит избежать этой проблемы, однако это будет означать предоставление каждому сотруднику нашей организации доступа на чтение / запись к базе данных для правильной работы приложения. Хотя это нормально, это также означает, что они могут легко подключаться к базе данных другими способами и напрямую изменять данные вне приложения.

Я предполагаю, что есть кое-что действительно очевидное, что я здесь скучаю, но я весь вечер гуглю безрезультатно Любой совет / руководство будет высоко ценится!

Питер


Дополнение - мой проект основан на Windows Form, а не ASP.NET - шифрование файла app.config все еще правильный ответ? Если да, есть ли у кого-нибудь примеры, не основанные на ASP.NET?

Ответы [ 4 ]

3 голосов
/ 27 мая 2010

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

Вы всегда можете создать строку подключения в вашем app.config и зашифровать этот раздел строки подключения . Это работает как для ASP.NET, так и для консольных приложений, приложений Winforms, приложений WPF - это действительно базовая технология .NET.

См. Шифрование паролей Джона Галлоуэя в .NET app.config для примера того, как это сделать не на ASP.NET.

Использование Windows Authenticaiton будет избежать этой проблемы, однако это будет значит дать каждому сотруднику в нашей организации чтение / запись доступ к базе данных для запуска приложение правильно.

Да, но вы можете облегчить бремя:

  • вы можете аутентифицировать группу Windows / AD - каждый, кто является членом этой группы, имеет доступ - нет необходимости индивидуально разрешать каждого пользователя

  • если вы используете представления для извлечения данных и сохраненные процедуры для вставки / обновления / удаления, вам даже не нужно будет предоставлять этим пользователям прямой доступ к таблицам, и вы можете защитить свою базу данных от неуместных манипуляций

3 голосов
/ 27 мая 2010

вы можете зашифровать имя пользователя и пароль в файле конфигурации

http://msdn.microsoft.com/en-us/library/89211k9b(VS.80).aspx

0 голосов
/ 27 мая 2010

Вы всегда можете зашифровать данные в app.config.

Эта ссылка содержит больше информации.

0 голосов
/ 27 мая 2010

Самый простой вариант - сохранить имя пользователя и пароль в файле web.config, затем зашифровать их

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