Подтвердить что ты не робот

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

Я создал пул приложений под названием "schoolPool" и назначил его моему веб-приложению. Идентификация для этого пула была установлена ​​в LocalSystem. Когда я пытаюсь получить доступ к моей базе данных из приложения, то есть откройте соединение SQL, я получаю следующую ошибку все время:

Login failed for user 'NT AUTHORITY\SYSTEM'


Я попытался добавить NT AUTHORITY/SYSTEM в SSMS (SQL Server Management Studio), но он уже был директором, который показал следующую ошибку:
enter image description here

4b9b3361

Ответ 1

Я сильно изменил настройки приложения, изменив идентификатор пула приложений (в Windows 8.1 IIS) на LocalSystem, LocalService, NetworkService и ApplicationPoolIdentity. Однако все они не смогли решить проблему, которую я зарегистрировал в моей базе данных.
Наконец Я установил идентификатор пула в LocalSystem и подумал, почему это может помешать "NT AUTHRITY\SYSTEM" открыть соединение с моей базой данных. Я открыл SQL Server Management Studio в качестве пользователя "Администратор" и проверил Роли сервера для NT AUTHORITY\SYSTEM в разделе "Вход в систему". По умолчанию роль сервера по умолчанию для этого пользователя была общедоступной. Я также проверил sysadmin и обновил форму своего веб-приложения. На этот раз это было успешным. Отличная работа!

Ответ 2

Разрешить NT AUTHORITY/SYSTEM для роли сервера как sysadmin. enter image description here

enter image description here

Ответ 3

Ответ Мусакхира на предоставление sysadmin кажется плохо продуманным в плане безопасности, и ответ Pinal, связанный с предоставлением неизвестного права db_owner, все равно почти наверняка переборщит. Я сам "решил", просто предоставив "общедоступные" права, которые обычно просто разрешают CONNECT, но ничего больше, даже SELECT. Если вы избавитесь от ошибки входа и прекратите заливать журнал ошибок, поскольку он теперь входит в систему, но какой бы ни был неизвестный процесс, соединение все еще ничего не может сделать.

Ответ 4

Повторите следующий запрос, который назначит 'NT SERVICE\MSSQLSERVER' для sysadmin

EXEC master..sp_addsrvrolemember @loginame = N'NT SERVICE\MSSQLSERVER', @rolename = N'sysadmin'