Excel数据透视表连接SQL Server时集成身份验证登录失败求助
SQL Server Windows身份验证连接失败(SSPI握手错误0x80090346)修复方案
场景与问题
- 客户端PC与两台SQL Server及对应数据库同属一个域,服务器均支持Windows身份验证
- 可成功连接第一台服务器创建数据透视表,但连接第二台时Excel报错:
登录失败。该登录来自不受信任的域,无法用于integrated authentication。 - 管理员确认两台服务器配置一致,推测问题出在Windows系统层面
- 连接操作步骤:
- 步骤1:在Excel中选择「数据」选项卡,点击「获取数据」→「从数据库」→「从SQL Server数据库」
- 步骤2:输入第二台SQL Server的服务器名称,选择「使用Windows身份验证」,点击「连接」
错误日志分析
第二台服务器的Windows事件日志显示:
SSPI握手失败,错误代码0x80090346,状态45,正在通过integrated security建立连接;连接已关闭。原因:此客户端的Channel Bindings与已建立的Transport Layer Security (TLS)通道不匹配。服务可能受到攻击,或者数据提供程序可能需要升级以支持Extended Protection。正在关闭连接。客户端提供的SSPI通道绑定不正确。
可正常连接的服务器无此错误事件。
修复步骤
1. 调整SQL Server扩展保护配置
- 打开SQL Server配置管理器,找到目标实例的「SQL Server网络配置」→「<实例名>的协议」
- 右键点击「TCP/IP」→「属性」→「高级」选项卡,找到「Extended Protection」设置
- 将其从
Required改为Allowed或Off,修改后重启SQL Server服务 - 说明:扩展保护强制要求客户端提供匹配的通道绑定信息,若客户端组件不支持该特性,就会触发握手失败。
2. 升级客户端SQL Server驱动
- 打开「控制面板」→「管理工具」→「ODBC数据源」,查看当前使用的SQL Server驱动版本
- 下载并安装最新版的Microsoft ODBC Driver for SQL Server,替换旧驱动
- 说明:旧版本驱动可能不支持Extended Protection的通道绑定验证,导致身份验证失败。
3. 统一客户端与服务器的TLS版本
- 确保客户端PC和第二台SQL Server启用的TLS版本一致(建议同时启用TLS 1.2及以上版本)
- 通过注册表配置TLS版本:
- 打开注册表编辑器,定位到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols - 找到对应TLS版本的「Client」和「Server」项,将
Enabled值设为1,DisabledByDefault设为0
- 打开注册表编辑器,定位到
- 说明:TLS版本不匹配会导致通道绑定信息生成错误,触发SSPI握手失败。
4. 重置客户端Kerberos票据
- 以管理员权限打开命令提示符,执行命令:
klist purge - 重启客户端PC后重新尝试连接
- 说明:过期或异常的Kerberos票据可能导致身份验证时通道绑定信息错误。
5. 检查SQL Server的SPN配置
- 联系管理员检查第二台SQL Server的服务主体名称(SPN)注册情况
- 使用命令
setspn -L <SQL服务账户>查看已注册的SPN,确保包含MSSQLSvc/<服务器名>:<端口>和MSSQLSvc/<服务器FQDN>:<端口>格式的条目 - 说明:SPN配置错误会导致Kerberos身份验证失败,进而触发“不受信任的域”错误提示。
内容的提问来源于stack exchange,提问作者bookofproofs
相关产品推荐
相关产品推荐

