Сохранение имени пользователя и пароля для доступа к SQL Server из службы Windows без встроенной безопасности

У нас есть сервис, который обращается к SQL Server, клиент не использует Integrated Security, и нам нужен сервис, чтобы иметь права на базу данных при каждом включении компьютера. Нужно ли хранить имя пользователя и пароль SQL Server? Если так, то где? (и как)

3 ответа

Решение

Да, если вы хотите подключиться к SQL Server с использованием определенного имени пользователя и пароля, эти учетные данные необходимо указать в строке подключения.

И да, хранить их в виде обычного текста - дело рискованное.....

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

Прочитайте о шифровании паролей в приложении.NET, и вопреки распространенному мнению, это доступно во всех.NET - не только в ASP.NET. В сервисах тоже работает - не проблема вообще.

Поэтому сохраните строку подключения SQL Server в app.config для вашего обслуживания, а затем зашифровать <connectionStrings> раздел и покончим с этим!

Вам необходимо создать учетную запись SQL для этой службы (http://msdn.microsoft.com/en-us/library/aa337562.aspx). Имя пользователя / пароль для этого входа в SQL необходимо будет где-то хранить (app config/ registry), к которому сервис может получить доступ.

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

Вы должны добавить имя пользователя / службы в качестве пользователя на сервере с соответствующими правами и то же самое в базе данных, вы можете сделать это с помощью SQL Server Studio Managment Studio. Сначала подключитесь к серверу и добавьте пользователя / службу в папку пользователей сервера, а затем добавьте пользователя в папку пользователя в базе данных.

посмотрите на этот пост в конце страницы, где говорится о "Предоставлении доступа к локальному серверу SQL"

http://msdn.microsoft.com/en-us/library/ff647402.aspx

Другие вопросы по тегам