SQL Server登录错误:用户'NT AUTHORITY\SYSTEM'登录失败

cod*_*bie 31 sql-server iis login

我创建了一个名为"schoolPool"的应用程序池,并将其分配给我的Web应用程序.此池的标识已设置为LocalSystem.当我尝试从应用程序中访问我的数据库,即打开SQL连接时,我始终收到以下错误:

Login failed for user 'NT AUTHORITY\SYSTEM'
Run Code Online (Sandbox Code Playgroud)


我尝试添加NT AUTHORITY/SYSTEM到SSMS(SQL Server Management Studio中)登录,但它已经是一个主要的,显示了以下错误:
在此输入图像描述

Mus*_*yed 90

允许NT AUTHORITY/SYSTEM将服务器角色作为sysadmin. 在此输入图像描述

在此输入图像描述

  • 谢谢伙计,我欠你很多时间:) (3认同)
  • 我已经有2天试图解决这个问题了.我觉得我欠你的生命</ 3 (2认同)

cod*_*bie 43

我经常调整应用程序设置,将应用程序池的标识(在Windows 8.1的IIS中)更改为LocalSystem,LocalService,NetworkService和ApplicationPoolIdentity.但是,所有这些都无法解决我登录数据库的问题.
最后,我在LocalSystem上设置池标识,并考虑为什么它可能阻止"NT AUTHRITY\SYSTEM"打开与我的数据库的连接.我以"管理员"身份打开了SQL Server Management Studio,并在"登录"部分下检查了NT AUTHORITY\SYSTEM 的服务器角色.默认情况下,此用户的默认服务器角色是公共的.我还检查了sysadmin并刷新了我的Web应用程序表单.这次它奏效了!现在一切都很完美.


小智 6

还有另一个修复方法。您应该打开命令提示符 (cmd) 并编写以下内容:

sqlcmd -S(服务器名称)

select name from sys.server_principals where name = 'NT AUTHORITY\SYSTEM'

go

SP_ADDSRVROLEMEMBER 'NT AUTHORITY\SYSTEM','SYSADMIN'

go
Run Code Online (Sandbox Code Playgroud)

第一行将让您访问计算机上的 SQL Server,第二行将获取以下结果,NT AUTHORITY\SYSTEM并将存储过程addsrvrolemember添加sysadmin到其中。请小心,因为您必须按原样键入以下代码。