Настройка интегрированной безопасности с использованием учетных записей удостоверений пула приложений 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, а не только вашим веб-приложениям.