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 ответ:
На самом деле IIS выполняет именно то, для чего он был разработан, когда вы запускаете пул приложений под идентификатором сетевой службы.
Использование учетной записи сетевой службы в доменной среде имеет большое выгода. Рабочий процесс, запущенный как сетевая служба доступ к сети как счет машины. Учетные записи машин создаются, когда машина присоединяется к домену. Они выглядят так:
<domainname>\<machinename>$
,Например: mydomain\machine1$
Хорошая вещь в этом то, что сетевые ресурсы как файловые ресурсы или базы данных SQL Server могут быть ACLed, чтобы позволить это доступ к учетной записи машины.
Приведенная выше цитата взята из следующей документации...
Http://www.iis.net/learn/manage/configuring-security/application-pool-identities
Надеюсь, это ответ на вопрос, почему он не работает так, как вы ожидаете.
Что касается того, как заставить его работать так, как вы хотите, я думаю, что эта статья должна ответьте на этот вопрос, и если нет, то какой-нибудь базовый поиск google должен выдать довольно много информации о том, как правильно настроить вашу среду для того, что вы пытаетесь сделать.