"Ошибка входа для пользователя 'NT AUTHORITY \ ANONYMOUS LOGON'."к SQL Server 2005 - PullRequest
1 голос
/ 19 февраля 2010

Я пытаюсь перенести имеющееся у нас приложение на Windows Server 2008 x64 и IIS7. Он написан на классическом ASP и подключается к базе данных SQL Server 2005.

Однако, когда страница запускается, я получаю сообщение об ошибке:

[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.

Используемая строка подключения: Driver=SQL Server; Server=SERVERNAME; Initial Catalog=DBNAME; Я не вижу причин, по которым он использует анонимный вход в систему, поскольку, когда он работал на моем 32-разрядном сервере Win2k3, он обращался к SQL-серверу, используя DOMAINNAME \ SERVERNAME $.

У меня есть следующие настройки.

SQL Server 2005 - работает в смешанном режиме. Пул приложений IIS7 - разрешить 32-разрядным приложениям значение True.

Я также добавил сервер как пользователь на SQL Server.

Я попробовал несколько вещей сейчас, и у меня заканчиваются идеи.

Ответы [ 5 ]

1 голос
/ 18 февраля 2016

Установите учетные данные анонимной аутентификации в качестве идентификатора пула приложений.
(по умолчанию: Конкретный пользователь -> Пользователь IIS). Затем вы можете использовать доверенное соединение в строке подключения, поскольку теперь оно будет использовать учетную запись AppPoolIdentity.

1 голос
/ 19 февраля 2010

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

1 голос
/ 19 февраля 2010

Существует несколько решений.

использует проверку подлинности SQL вместо SSPI.Он будет работать, так как ваша база данных находится в смешанном режиме.

Если по каким-либо причинам вы не измените аутентификацию.

Кстати, NT AUTHORITY\ANONYMOUS LOGON странно, как будтоСервер базы данных и серверы приложений не находятся в одном домене.Пожалуйста, проверяйте это, пока не продолжите.

1) Создайте пользователя в Active Directory
2) Создайте пул приложений на IIS7 и под именем «Identity» вы создали пользователя
3) Предоставьтеэтот пользователь права и роли вы хотите на БД

0 голосов
/ 10 сентября 2014

Для OP или будущих читателей вы можете:

1) Либо используйте выделенную служебную учетную запись, как предложено Йоханом выше, либо

2) Используйте учетную запись AppPoolIdentity и перейдите в «Аутентификация», затем выберите «Аутентификация Windows» и включите «Олицетворение ASP .NET».

Если вы все еще получаете тот же результат после # 2, вероятно, у вас есть проблема «двойного прыжка», о которой говорил Дэмиен - именно здесь веб-сервер может вас аутентифицировать, но он не позволяет вам передавать эти учетные данные База данных по соображениям безопасности без использования Kerberos. Затем вам нужно будет установить сервер как «Доверенный для делегирования» в AD и настроить Kerberos в качестве поставщика проверки подлинности в IIS. Этот сайт помогает с этим: http://technet.microsoft.com/en-us/library/ee675779.aspx

0 голосов
/ 19 февраля 2010

Что ж, эта неудачная попытка входа в систему является классическим примером кода, выполняемого под учетной записью «Local Service», а не (чем вы пользовались в Win2K3), где он выполнялся под учетной записью «Network Service».Теперь вам просто нужно найти, где находится этот параметр.

...