Классическая проблема ASP при подключении к удаленной базе данных SQL Server - PullRequest
7 голосов
/ 16 июля 2009

У меня есть классическое приложение ASP, которое я пытаюсь подключить к базе данных SQL Server 2008 на другом сервере. Приложение ASP обслуживается из IIS7 в Windows Server 2008.

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

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

Application Error 
Number: -2147217843 (0x80040E4D)
Source: Microsoft OLE DB Provider for SQL Server
Description: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. 

Почему он пытается подключиться, используя NT AUTHORITY \ ANONYMOUS LOGON? Не относится ли идентификация пула приложений к классическому ASP-коду? Как я могу сделать это подключение как конкретного пользователя?

EDIT

Вот строка подключения, которую я использую:

Поставщик = SQLOLEDB.1; Источник данных = myDbServer; Начальный каталог = myDatabase; Интегрированная безопасность = SSPI

Ответы [ 3 ]

21 голосов
/ 12 октября 2010

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

Выберите Аутентификация в области IIS вашего сайта, затем выберите Анонимная аутентификация , а затем Редактировать . Изменить с Определенный пользователь на Идентификатор пула приложений .

Рекомендуется использовать проверку подлинности Windows (встроенную защиту) поверх проверки подлинности SQL, чтобы у вас не было учетных данных в ваших файлах конфигурации, чтобы в случае компрометации этих файлов вы не теряли контроль над учетными данными.

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

Ваше приложение олицетворяет звонящего? Вам необходимо включить ограниченное делегирование: Настройка серверов для делегирования .

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

вы должны указать имя пользователя и пароль для строки подключения www.connectionstrings.com или настроить приложение IIS на запуск от имени определенного пользователя, однако это приведет к тому, что многие параметры безопасности в IIS устареют ,

Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase;Uid=myUsername; Pwd=myPassword;

И посмотрите здесь: aspfaq

Наконец, убедитесь, что анонимный доступ отключен на сайте IIS, чтобы он фактически выдавал себя за пользователя, которого вы выбрали, а не передавал анонимные токены.

...