2016-07-18 1 views
6

При открытии подключения sql к локальной базе данных в традиционном консольном приложении у меня нет проблем, однако, когда я пытаюсь сделать то же самое в службе без состояния, запущенной в Service Fabric Я получаю ошибку входа.Подключиться к локальному экземпляру SQL Server при запуске кластера Service Fabric в среде разработки

Ошибка я получаю это "Login failed for user 'WORKGROUP\\NICK$'."

И это код, я использую для подключения

using (var con = new SqlConnection("Server=.;Trusted_Connection=True;Database=AddressBook")) 
{ 
      try 
      { 
       con.Open(); 
      } 
      catch (Exception e) 
      { 

      } 
} 

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

+0

Как вы указываете пользовательские кредиты? Вы полагаетесь на пользователя, в котором работает этот процесс? Если это так, это будет работать в консольном приложении, которое выполняется как вы, но в Service Fabric процесс выполняется по учетной записи Network Service по умолчанию. –

+0

@VaclavTurecek Да, я полагался на пользователя, под которым был запущен процесс. Я настраиваю нового пользователя на сервере sql и задаю для него пароль. Я изменил строку подключения на следующую, не повезло. Нужно ли также менять сервер? 'Server =; User Id = Fabric; Password = mypassword; Database = AddressBook' –

ответ

14

Основываясь на комментариях выше, я узнал, что Service Fabric работает под учетной записью NETWORK SERVICE.

Решение заключается в обновлении пользовательского сопоставления и членства в ролях для баз данных, к которым вы хотите получить доступ в кластере SF.

В SSMS разверните Security, Logins, щелкните правой кнопкой мыши NETWORK SERVICE, а затем выберите свойства. В разделе «Отображение пользователей» установите флажок рядом с каждой базой данных, для которой вы хотите открыть доступ ниже и ниже ниже public, db_datareader/writer.

enter image description here

+2

Кроме того, вы можете настроить свою службу для запуска в качестве другой учетной записи пользователя, имеющей доступ к вашей базе данных: https://azure.microsoft.com/ ан-нас/документация/статьи/сервис-ткань-приложения-RunAs-безопасности/# применять-runaspolicy к услугам –