SQL Server 2000 + ASP.NET: сбой входа для пользователя 'NT AUTHORITY \ ANONYMOUS LOGON' - PullRequest
1 голос
/ 15 июля 2009

Я только что перенес рабочую станцию ​​для разработки

  • ИЗ: Windows XP Pro SP3 с IIS 6
  • TO: Vista Enterprise 64bit с IIS 7

После переезда одна из моих страниц, обращающаяся к базе данных SQL Server 2000, получает следующую ошибку от моей веб-страницы ASP.NET 2.0: «Ошибка входа в систему для пользователя« NT AUTHORITY \ ANONYMOUS LOGON ».»

У меня есть:

  • включена проверка подлинности Windows в IIS и web.config
  • отключена анонимная аутентификация в IIS
  • настроить Олицетворение для запуска в качестве аутентифицированного пользователя
  • проверил, что вошедший в систему пользователь (в данном случае я) имеет доступ к соответствующей базе данных на SQL Server
  • проверил, что мои данные для входа и олицетворения верны на странице ASP.NET, проверив User.Identity.Name и System.Security.Principal.WindowsIdentity.GetCurrent (). Name (оба отображают мое имя пользователя)

Моя строка подключения с использованием SqlConnection: «Сервер = {SERVER_NAME}; База данных = {DB_NAME}; Интегрированная безопасность = SSPI; Trusted_Connection = True;» *

Почему он пытается войти с NT AUTHORITY \ ANONYMOUS LOGIN? Я должен предположить, что это какая-то настройка или запись web.config, специфичная для IIS7, так как до миграции она работала нормально.

ПРИМЕЧАНИЕ. SQL Server - только аутентификация Windows - без смешанного режима или только SQL.

Ответы [ 3 ]

2 голосов
/ 16 июля 2009

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

setspn -A MSSQLSvc/SERVERNAME.domain.name:1433 domainname\SQLServiceAccount

Выключите SERVERNAME для имени промежуточного сервера (это доступ к блоку SQL 2000 от вашего имени), убедитесь, что вы используете полное доменное имя (IE. Myserver.mycompany.local), а затем domainname \ SQLServerAccount - это учетная запись, которую вы используете для запуска служб SQL (IEучетная запись, которая будет получать доступ к блоку SQL 2000 от вашего имени).

Если вы хотите получить более подробную информацию, вот статья об этом в MSDN - http://technet.microsoft.com/en-us/library/bb735885.aspx. Отправьте сообщение, если возникнут какие-либо проблемы.

1 голос
/ 16 июля 2009

Предполагается, что SQL Server установлен в отдельном блоке и находится в домене

Ваша рабочая станция должна иметь возможность делегирования в Active Directory проходить через учетные данные («маркер входа в систему») и разрешать олицетворение работать. Похоже, это то, что вы пытаетесь сделать, основываясь на других ваших шагах,

0 голосов
/ 04 октября 2016

Запуск в SSMS

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

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