发生了什么事。我在Windows Server 2008 R2上运行Web应用程序。它使用的应用程序池在LocalSystem帐户下运行。该应用程序抱怨“NT Authority \ SYSTEM”无法访问我的数据库,因此我将该用户添加到数据库中。直到昨天,当应用程序开始抱怨“Development \ MyMachineName $”无法访问我的数据库时,一切正常。应用程序池仍在“LocalSystem”帐户下运行。我很困惑为什么它现在改变了身份。
在玩游戏时我最终从sql server安全性中删除了我的用户名。我的sql server 2012实例在Windows身份验证模式下运行。现在我无法连接到sql实例。为了解决这个问题,有人建议使用“psexec -i -s sms”在“NT Authority \ System”帐户下启动管理工作室。当我尝试这个时,管理工作室也尝试使用“Development \ MyMachineName $”登录。我现在想知道“NT Authority \ SYSTEM”身份发生了什么。
预先感谢即将到来的帮助:)
编辑: 我的SQL Server实例与Web应用程序位于同一台计算机上。即它是一台开发机器,其中有iis和sql server运行以进行开发。
答案 0 :(得分:2)
这里有很多东西,所以希望这会为你澄清一些事情。
我在Windows Server 2008 R2上运行Web应用程序。应用程序池它 使用LocalSystem帐户下的运行。该申请被抱怨 “NT Authority \ SYSTEM”无法访问我的数据库,所以我补充说 那个用户到数据库。
如果数据库服务器是IIS服务器的本地服务器,那很好(尽管我仍然会使用域帐户来运行应用程序池)。如果数据库服务器远离IIS服务器,则“本地系统”池尝试验证将转换为使用计算机帐户Domain \ Computer $的网络资源(与网络服务一样)。
直到昨天应用程序启动时,一切正常 抱怨“开发\ MyMachineName $”无法访问我的 数据库。应用程序池仍在“LocalSystem”帐户下运行。
我无法从您的问题中判断出这些服务器是否相同,需要进一步澄清。
在玩游戏时我最终从sql server中删除了我的用户名 安全。我的sql server 2012实例在windows中运行 验证模式。现在我无法连接到sql实例。修理 这发现有人建议使用“psexec -i -s ssms”来启动 管理工作室在“NT Authority \ System”帐户下。当我试着 这个管理工作室试图登录 “开发\ MyMachineName $”也是如此。我现在想知道发生了什么 以“NT Authority \ SYSTEM”身份。
NT Authority \ System是一种特殊的内置标识,并且不会遍历网络资源,如果需要将其作为计算机帐户Domain \ Computer $进行身份验证。我不知道您的文本中的整个设置,但是要使psexec工作,它必须在数据库服务器上启动ssms,否则它将继续使用计算机帐户。如果您需要访问权限,请成为服务器管理员窗口组的成员并以单用户模式启动SQL Server - 使用Windows身份验证(本地)连接并重新登录。
我们需要一个基础架构图来进一步了解它,但基础是:
答案 1 :(得分:1)
我想我明白了。原因是当连接字符串使用计算机名称时,它会转发" MACHINE $"作为身份,但当它使用localhost时,它转发" SYSTEM"作为身份。