我知道这几乎是重复的: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