我的Windows服务使用集成身份验证并在本地系统帐户下运行,并得到以下异常。
目标主体名称不正确。无法生成SSPI上下文。
SQL Server服务正在域管理员用户下运行,例如“域\管理员”。如果我将SQL Server服务更改为在本地系统帐户下运行,则它会修复上述错误。
任何人都可以解释为什么会这样吗?我们有一个InstallShield向导,它在客户端安装我们的应用程序,我不知道如何通过向导处理这种行为。同时更改SQL Server服务的用户也是不现实的,因为客户端可能不允许它。
注意:一旦我的Windows服务工作正常并且我恢复在管理员帐户下运行的SQL Server,我的服务运行正常。我猜有一些权限设置为本地系统帐户。
之前,我运行了生成以下脚本的kerbros来运行并修复了问题。在此之后,不需要更改SQL Server服务的用户。
SetSPN -d“MSSQLSvc / FQDN”“domain \ machine $”
SetSPN -s“MSSQLSvc / FQDN”“domain \ administrator”
请解释为什么会发生这种情况以及处理这种情况的最佳方法是什么?
谢谢。