2012-10-18 179 views
3

連接字符串:無法打開登錄請求的數據庫「DigitSite.mdf」。登錄失敗。用戶登錄失敗「Lenaire-PC Lenaire」

Server=(local);Database=DigitSite.mdf;Integrated Security=true 

我試過很多其他的連接字符串的,他們有同樣的錯誤或一個甚至沒有嘗試登錄到我提供的數據庫。我不確定這是一個IIS問題,還是sql問題或連接字符串問題。

在IIS7的這個應用程序池設置爲本地系統

我有我的虛擬目錄映射正確

對於路徑的憑據我用「應用程序用戶(通過身份驗證),我已經指定一個用戶,都沒有工作,在身份驗證我已關閉匿名身份驗證,並啓用了冒充

在sql中我確保用戶我試圖登錄作爲具有適當的安全性爲這個數據庫爲「數據庫所有者」。我試圖創建一個用戶登錄到SQL爲(SQL Server 2008 R2),但我得到錯誤WH試圖將該用戶登錄進來。有什麼建議嗎?

這似乎是一個常見問題,但我已經花了超過5個小時研究這一點,並與設置搞砸了,所以我有點在最後如何讓這個工作。謝謝。

+1

請提供更多的上下文。你想實現什麼?什麼軟件?什麼操作系統? – krlmlr

回答

3

SQL Server通常使用邏輯數據庫名稱,例如,您可以在服務器實例上創建數據庫(或者在SQL Server Management Studio中附加一個現有的.mdf文件併爲其指定一個邏輯數據庫名稱),並且您從不必處理文件名等。

所以你的連接字符串確實應該是這樣的:僅使用邏輯數據庫名稱DigitSite

Server=(local);Database=DigitSite;Integrated Security=true 

- 而不是實際的文件名(SQL Server將管理你的文件(S) - 唐不要惹上那個!)

+3

哇,我不能說我不覺得傻。這工作像一個魅力。這實際上是我不認爲我在做的一件事。非常感謝您的幫助。 –

1

SQL Server有兩個地方分配了登錄權限。一個在服務器級,一個在數據庫級。您必須在兩個位置都擁有適當的權限。

對於這個錯誤,它看起來像在服務器上的登錄是好的,但數據庫不喜歡登錄。您正在使用'Lenaire-PC \ Lenaire'的Windows登錄名,因此請確保該用戶是「db_owner」角色的成員。

USE [DigiSite] 
GO 
EXEC sp_addrolemember N'db_owner', N'Lenaire-PC\Lenaire' 

如果這不起作用,您將需要提供有關您的設置,SQL版本等的更多信息。這確實看起來不尋常。

另外,確保每次構建項目時,構建過程或Visual Studio魔術都不會覆蓋數據庫更改。爲了解決這個問題,我會永久性地將數據庫附加到服務器上。

+0

我不知道,謝謝你的意見。我會牢記這一點。 –

相關問題