为什么我的Windows服务只在SQL Server服务在本地系统帐户下运行时才与数据库建立连接?

问题描述 投票:1回答:1

我的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”

请解释为什么会发生这种情况以及处理这种情况的最佳方法是什么?

谢谢。

sql-server authentication kerberos windows-integrated-auth spn
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.