请求协助解决SQL Server连接的SSPI上下文生成失败问题
SQL Server连接错误:无法生成SSPI上下文(目标主体名称不正确)
错误信息
SqlException (0x80131904): 目标主体名称不正确。无法生成SSPI上下文。
已尝试官方文档中的解决方案,但未解决问题。
连接字符串配置
<?xml version="1.0" encoding="utf-8"?> <connectionStrings> <add name="redis" connectionString="host=127.0.0.1;db=0;port=6379" /> <add name="defPackagesWorkingCopyPath" connectionString="%TEMP%\%APPLICATION%\%APPPOOLIDENTITY%\%WORKSPACE%\TerrasoftPackages" /> <add name="tempDirectoryPath" connectionString="%TEMP%\%APPLICATION%\%APPPOOLIDENTITY%\%WORKSPACE%\" /> <add name="sourceControlAuthPath" connectionString="%TEMP%\%APPLICATION%\%APPPOOLIDENTITY%\%WORKSPACE%\Svn" /> <add name="elasticsearchCredentials" connectionString="User=gs-es; Password=DEQpJMfKqUVTWg9wYVgi;" /> <add name="influx" connectionString="url=http://10.0.7.161:30359; user=; password=; batchIntervalMs=5000" /> <add name="messageBroker" connectionString="amqp://guest:guest@localhost/BPMonlineSolution" /> <add name="db" connectionString="Data Source=127.0.0.1;Initial Catalog=BS_BCJ_L_MENU_4118923_0930;Integrated Security=SSPI;MultipleActiveResultSets=True;Pooling=true;Max Pool Size=100" /> </connectionStrings>
额外排查解决方案
检查SPN注册状态
打开命令提示符,执行setspn -L <SQL Server服务运行账户>,查看是否存在对应127.0.0.1或本地主机名的SPN(格式为MSSQLSvc/<IP或主机名>:<端口>)。若缺失,执行setspn -A MSSQLSvc/127.0.0.1:1433 <服务账户>添加(默认端口为1433,根据实际情况调整)。调整连接字符串的数据源
将Data Source=127.0.0.1替换为本地主机名或localhost,SSPI对主机名的SPN匹配兼容性优于IP地址。验证应用池身份权限
若应用部署在IIS,确认应用程序池的运行账户具备获取Kerberos票据的权限,且该账户已在SQL Server中配置对应的登录权限。清除Kerberos缓存
执行命令klist purge清除本地Kerberos缓存,随后重启应用程序池及SQL Server服务,再尝试连接。确认SQL Server身份验证模式
在SQL Server配置管理器中,检查服务器属性的安全性设置,确保已启用Windows身份验证模式。
内容的提问来源于stack exchange,提问作者Futorka
相关产品推荐
相关产品推荐

