Ошибка входа. Ошибка входа для пользователя "NT AUTHORITY\SYSTEM"

Я создал службу Windows, и моя служба зависит от службы SQL-сервера. Во-первых, SQL начал, а затем моя служба началась при запуске ПК или перезапуске ПК.

Это отлично работает, но проблема заключается в том, что файл базы данных не может быть прочитан службой Windows, выбрасывая исключение "Невозможно открыть базу данных по умолчанию для пользователя. Ошибка входа. Лог не удалось для пользователя" NT AUTHORITY\SYSTEM ", когда я пытаюсь прочитайте базу данных.

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

Ответ 1

Я уверен, у вас есть это в строке подключения:

Integrated Security=SSPI

или что-то подобное.

Теперь учетная запись, в которой работает служба (NT AUTHORITY\SYSTEM), пытается подключиться к базе данных - и не может, поскольку она не разрешена для этого.

Вы можете:

  • либо создайте логин для NT AUTHORITY\SYSTEM на вашем SQL Server и дайте ему необходимые разрешения, необходимые для вашего приложения.

ИЛИ

  • вы создаете конкретную учетную запись пользователя приложения в SQL Server (войдите в SQL Server и пользователь в своей базе данных) и измените строку подключения на:

    User ID=(your app account);pwd=YourPassword
    

Ответ 2

Я фактически просто изменил разрешения для пользователя NT AUTHORITY\SYSTEM на SQL Server, и это сработало для меня.

Ответ 3

Перейдите на вкладку безопасности в базе данных.

В разделе security щелкните вкладку Users.

Найти погоду NT AUTHORITY\SYSTEM.

Если нет, Щелкните правой кнопкой мыши пользователей, нажмите новый пользователь

В новом пользовательском окне вкладка general изменит user type на пользователей Windows.

Выберите имя пользователя, NT AUTHORITY\SYSTEM, вам нужно будет найти его в Advanced tab, find now, and select system.

Аналогично для имени входа, browse and find NT AUTHORITY\SYSTEM.

И на вкладке членства слева выберите все необходимые поля и нажмите "ОК".

Возможно, это исправит вашу проблему. Надеюсь, это поможет.

Ответ 4

Простое решение - проверить ваш файл web.config и убедиться, что один из них является частью строки подключения к базе данных:

Trusted Connection=false

ИЛИ

Integrated Security=True