Настройка интегрированной безопасности с использованием учетных записей удостоверений пула приложений IIS для SQL Server 2008

У меня есть следующая конфигурация для веб-сайта:

  • Два веб-интерфейса (например, имена машин: WFE1 и WFE2) 1 SQ
  • Один кластер базы данных SQL Server (например, имя компьютера: DBCluster)

Все машины находятся в одном домене (например, MyDomain) под управлением Windows 2008 R2 Enterprise и SQL Server 2008 R2.

Я нахожусь в процессе развертывания веб-приложения, использующего идентификатор пула приложений. Я назвал пул MyWebApp, который переводится как "IIS APPPOOL\MyWebApp". Когда я пытаюсь добавить этого пользователя в SQL Server, я получаю сообщение об ошибке:

Пользователь или группа Windows NT "IIS APPPOOL\MyWebApp" не найдены. Проверьте имя еще раз.

Сценарий, который я использовал для создания учетной записи в SQL Server:

СОЗДАТЬ ВХОД [IIS APPPOOL\MyWebApp] ИЗ WINDOWS WITH DEFAULT_DATABASE=[MyDatabase], DEFAULT_LANGUAGE=[us_english] GO

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

Может кто-нибудь, пожалуйста, пролить свет на то, как эта проблема может быть решена? Является ли использование учетной записи домена моей единственной опцией или я все еще могу заставить работать учетные записи пула приложений?

1 ответ

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

Это именно проблема. Учетная запись IIS AppPool существует только на веб-сервере. Если бы вы смогли добавить эту учетную запись в SQL Server, вы бы авторизовали IIS AppPool, работающий на том же компьютере, что и SQL Server. (Я подозреваю, что это все еще может потерпеть неудачу.)

Наиболее безопасным решением, вероятно, было бы сделать, как вы говорите, - создать учетную запись в домене, дать этой учетной записи соответствующие разрешения для базы данных и запустить AppPool с использованием учетных данных этой учетной записи.

Однако, если вы все еще хотите это сделать, вам необходимо авторизовать компьютер, на котором запущен AppPool, т.е. DOMAINNAME\ComputerName$ (Обратите внимание $ в конце).

Посмотрите эту статью для получения дополнительной информации (в частности, раздел под названием Доступ к сети).

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

Другие вопросы по тегам