我知道這幾乎是重複的:The error "Login failed for user 'NT AUTHORITY\IUSR'" in ASP.NET and SQL Server 2008和Login failed for user 'username' - System.Data.SqlClient.SqlException with LINQ in external project/class library但有些事情沒有加起來相比,我的服務器上的其他應用程序,我不知道爲什麼。
盒使用:
網箱
SQL盒
SQL試驗箱
我的應用程序:
我有aASP.NET Web應用程序,它引用一個使用LINQ到SQL的類庫。連接字符串在類庫中正確設置。根據Login failed for user 'username' - System.Data.SqlClient.SqlException with LINQ in external project/class library我還將此連接字符串添加到Web應用程序。
連接字符串使用SQL憑據,所以(在Web應用程序和類庫):
<add name="Namespace.My.MySettings.ConnectionStringProduction"
connectionString="Data Source=(SQL Test Box);Initial Catalog=(db name);Persist Security Info=True;User ID=ID;Password=Password"
providerName="System.Data.SqlClient" />
此連接證實通過將其添加到服務器資源管理器的工作。這是我的.dbml文件正在使用的連接字符串。
問題:
我收到以下錯誤:
System.Data.SqlClient.SqlException: Login failed for user 'DOMAIN\MACHINENAME$'.
現在引用此The error "Login failed for user 'NT AUTHORITY\IUSR'" in ASP.NET and SQL Server 2008它說這是真正的本地網絡服務和使用任何其他非域名將無法正常工作。
但是我很困惑,因爲我已經檢查了SQL Box和SQL Test Box SQL Management Studio,並且都在安全 - >用戶下列出的安全性 - >登錄下的數據庫級別上有NT AUTHORITY/NETWORK SERVICE
,但在數據庫級別安全性 - >用戶我讓用戶顯示在連接字符串中。
在Web服務器上的NTFS級別,權限有NETWORK SERVICE具有完全控制。
爲什麼我感到困惑的原因是因爲我有我的Web服務器上的許多其他Web應用程序,兩個SQL盒和SQL試驗箱是參考數據庫,他們所有的工作。但我找不到他們和我當前的應用程序之間的區別,除了我正在使用類庫。這是否重要?檢查NTFS權限,在服務器和數據庫級別設置安全登錄,連接字符串和連接方法(SQL Server憑據)以及IIS應用程序池和其他文件夾選項都是相同的。
爲什麼這些應用程序的工作不添加計算機名$以任我SQL箱子的權限?但這就是這條鏈接告訴我要解決這個問題的方法。
因此,要回顧一下,你不使用數據庫用戶?我們創建一個可以把它和SA取決於什麼,我們需要做的... – jcolebrand 2010-05-10 21:04:20
在連接字符串我使用的數據庫用戶,這是我在創造安全之間進行切換 - >登錄區,將其添加到安全 - >數據庫的用戶,並給它dbo權限。我也是這樣做了我所有的其他應用程序。 – SventoryMang 2010-05-10 21:28:07