用户'NT AUTHORITY\NETWORK SERVICE'登录失败

Dej*_*n.S 30 asp.net iis-7 connection-string web-config sql-server-2008

我对此持续了2天的努力,而没有更接近解决方案.我已阅读20-30个线程的alteast和stil无法解决此问题.

请帮帮我.

我已禁用匿名身份验证,启用asp.net模拟.

我已经添加了 <identity impersonate = "true" />

我已将用户添加到连接到我尝试连接的数据库的安全登录

这是我使用的连接字符串:

Data Source=IPTOSERVER;Initial Catalog=Phaeton;User Id=User;Password=Password;
Run Code Online (Sandbox Code Playgroud)

错误信息:

无法打开登录请求的数据库"Phaeton.mdf".登录失败.

用户'NT AUTHORITY\NETWORK SERVICE'登录失败.

Jed*_*Jed 83

我遇到了类似的错误消息,我在Windows事件查看器中注意到:

用户'NT AUTHORITY\NETWORK SERVICE'登录失败.原因:无法打开显式指定的数据库.[客户:本地机器]

解决我的问题的解决方案是:

  1. 通过SQL Server Management Studio登录SqlExpress
  2. 转到数据库的"安全"目录
  3. 右键单击Users目录
  4. 选择"新用户..."
  5. 添加'NT AUTHORITY\NETWORK SERVICE'作为新用户
  6. 在"数据角色成员资格"区域中,选择db_owner
  7. 单击确定

这是上面的截图: 将新用户网络服务作为db_owner添加到SqlExpress的屏幕截图

  • 我的投票首先,事实上这个想法最终对我有用,谢谢,但用户名无关紧要,它是你为它选择的登录名,应该是NT AUTHORITY\NETWORK SERVICE.还有一件事是我的SQL Server Express(2005)不允许在用户名中使用\ char(我不确定SQL是否如此).再次感谢 ! (2认同)

Ric*_*hez 8

您收到的错误消息告诉您应用程序无法连接到sqlexpress数据库,而不是sql server.我将在sql server中更改db的名称,然后相应地更新connectionstring并再次尝试.

您的错误消息指出以下内容:

Cannot open database "Phaeton.mdf" requested by the login. The login failed.
Run Code Online (Sandbox Code Playgroud)

在我看来,您仍在尝试连接到基于文件的数据库,名称"Phaeton.mdf"与您的新SQL数据库名称"Phaeton"不匹配.

希望这可以帮助.


小智 8

如果错误消息只是

"用户'NT AUTHORITY\NETWORK SERVICE'登录失败.",然后授予"NT AUTHORITY\NETWORK SERVICE"的登录权限

通过使用

"sp_grantlogin 'NT AUTHORITY\NETWORK SERVICE'" 
Run Code Online (Sandbox Code Playgroud)

否则,如果错误消息是这样的

"无法打开登录请求的数据库"Phaeton.mdf".登录失败.用户'NT AUTHORITY\NETWORK SERVICE'登录失败."

尝试使用

"EXEC sp_grantdbaccess 'NT AUTHORITY\NETWORK SERVICE'" 
Run Code Online (Sandbox Code Playgroud)

在你的"Phaeton"数据库下.


Ida*_*a N 6

我喜欢Jed的解决方案,但问题是我每次在调试模式下构建项目时,它都会部署我的数据库项目并再次删除用户.所以我将这个MySQL脚本添加到Post-Deployment脚本中.它实际上是Jed所说的,但每次部署时都会创建用户.

CREATE USER [NT AUTHORITY\NETWORK SERVICE]
    FOR LOGIN [NT AUTHORITY\NETWORK SERVICE]
    WITH DEFAULT_SCHEMA = dbo;
Go

EXEC sp_addrolemember 'db_owner', 'NT AUTHORITY\NETWORK SERVICE'
Run Code Online (Sandbox Code Playgroud)