Почему SQL Server использует другого пользователя для создания сеанса? - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь подключиться к базе данных SQL Server из веб-приложения .NET Core. Вот строка подключения, которую я использую:

Server =.; Database = DBNAME; User Id = tb; Password = pass; Trusted_Connection = True; MultipleActiveResultSets = True;.

При предыдущей установке создаетсяисключение:

Произошла ошибка при подключении к базе данных 'DBNAME' на сервере '.'.System.Data.SqlClient.SqlException (0x80131904): Ошибка открытия сеанса для пользователя 'MyDomain \ ServerMachineName $'.

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

В файле запуска соответствующая конфигурация:

services.AddDbContext<MyDBContext>(options => options.UseSqlServer(Configuration.GetConnectionString("MyConnectionString")));

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

Вопросы:

  1. Почемусистема полностью игнорирует указанную мной строку подключения?

  2. Есть ли способ обойти это?

1 Ответ

3 голосов
/ 26 сентября 2019

Что означает Trusted_Connection = True; - игнорировать переданные идентификатор пользователя и пароль и вместо этого использовать учетные данные Windows пользователя, запустившего программу.Поскольку ваша программа, скорее всего, работает как служба «пользователь», она работает как MyDomain\ServerMachineName$.

При установке доверенного соединения на false он будет использовать идентификатор пользователя и пароль, указанные в строке подключения.

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