SQL Server trusted connection имеет неправильного пользователя в IIS, но SSMS в порядке


Я использую VS 2012, подключаясь к узлу SQL Server 2008 с использованием учетных данных windows. Я могу нормально подключиться из среды Management Studio, но при запуске веб-приложения (IIS 7.5 windows 7 ASP.NET 4.0 integrated) и мое приложение пытается подключиться, я получаю следующее:

Ошибка входа для пользователя ' MyDomainMyMachineName$'.

По какой-то причине пул приложений IIS, использующий сетевое удостоверение, использует не MyUserName, а имя моей машины. Моя строка подключения:

<connectionStrings>
    <clear />
    <add name="Assignment" 
         connectionString="Data Source=a.b.c.d;Initial Catalog=My_Db;Trusted_Connection=true;Max Pool Size=200;Pooling=True;" />
</connectionStrings>

I следует упомянуть, что это новый (для меня) компьютер. Я заглянул в credential manager и там ничего нет. Есть идеи, почему IIS и мое веб-приложение используют неправильную вещь?

1 2

1 ответ:

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

Использование учетной записи сетевой службы в доменной среде имеет большое выгода. Рабочий процесс, запущенный как сетевая служба доступ к сети как счет машины. Учетные записи машин создаются, когда машина присоединяется к домену. Они выглядят так:

<domainname>\<machinename>$,

Например: mydomain\machine1$

Хорошая вещь в этом то, что сетевые ресурсы как файловые ресурсы или базы данных SQL Server могут быть ACLed, чтобы позволить это доступ к учетной записи машины.

Приведенная выше цитата взята из следующей документации...

Http://www.iis.net/learn/manage/configuring-security/application-pool-identities

Надеюсь, это ответ на вопрос, почему он не работает так, как вы ожидаете.

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

Https://gilesey.wordpress.com/2013/05/11/allowing-iis-7-5-applications-to-communicate-to-sql-server-via-windows-authentication/