2012-11-12 83 views
3

我正在使用IIS7上的MVC4製作模型的第一個網站。在Windows中使用Windows身份驗證和連接字符串連接到SQL 2008 R2

目前我的連接字符串看起來是這樣的:

<add name="VaultEntities" 
    connectionString="metadata=res://*/Models.VaultDB.csdl|res://*/Models.VaultDB.ssdl|res://*/Models.VaultDB.msl;provider=System.Data.SqlClient; 
     provider connection string=&quot; 
     data source=sqlserver\instance; 
     initial catalog=vault; 
     integrated security=True; 
     multipleactiveresultsets=True; 
     App=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" /> 

的連接是由Visual Studio 2011自動生成的,當我通過Model First方法添加到數據庫中。查詢在我的開發機器上完美地在本地運行。但它不適用於IIS服務器。

我的猜測是,這是因爲我的機器上我的用戶帳戶具有訪問SQL Server和IIS時試圖訪問SQL服務器的用戶帳戶被拒絕。

在一個完美的世界,我會在我的連接字符串在SQL服務器上添加一個用戶,並使用

User Id=myUsername;Password=myPassword; 

,可惜我沒有這樣的選擇。

沒有進入細節DBA的是... ...很難一起工作。

那麼,有沒有辦法用我的AD帳戶的連接字符串中登錄到SQL服務器...或者,我可以讓IIS自身標識爲我嗎?

+2

是的,您可以將運行該網站的應用程序池標識更改爲您在IIS中的帳戶。 – Fung

回答

5

有沒有什麼辦法在連接字符串中使用我的AD帳號登錄到SQL服務器 ......或者我可以讓IIS自己識別爲我嗎?

您可以讓應用程序池使用您想要的任何AD用戶。

我不會建議使用自己的用戶名,但。您在過去12個月中鎖定了多少次用戶名,以及您離開時會發生什麼?

創建/使用服務AD帳戶,在應用程序池映射它,並獲得數據庫管理員給DB訪問該用戶使用受信任的連接。對不起,您必須與DBA交談! :-)

+1

通過選擇應用程序池並單擊右側「操作」面板中的高級設置來解決。在那之後,我將「身份」編輯爲與我的AD帳戶相同。一直工作了30分鐘左右;) – JensB

+0

很高興你有它的工作!希望你稍後可以改進它。希望你能找到一些更好的DBA! :-) –

+0

完美答案!像魅力一樣工作。謝謝。 –

2

好的,有兩種選擇。 1.要麼你改變你的應用程序池標識一個具有數據庫訪問AD,這也可以通過在自己的網站的web.config文件impersonation部分做(檢查此link)。 2.您可以將sql帳戶添加到連接字符串中。正如我所看到的,您正在使用EF連接字符串,它與標準的sql連接字符串有點不同。但仍然與sql憑證有相同的部分,只需將integrated security = true替換爲used id =...;password=...。就這樣。

希望這會有所幫助。

相關問題