You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSRS数据源连接失败:NT AUTHORITY\ANONYMOUS LOGON登录失败求助

排查SSRS Kerberos委派匿名登录失败问题

针对你遇到的SSRS连接SQL Server时出现NT AUTHORITY\ANONYMOUS LOGON登录失败的问题,按以下步骤逐一排查:

1. 修正SQL Server SPN的注册账户

SQL Server的SPN必须注册到SQL Server服务运行的AD账户(或计算机账户,若服务用本地系统),而非SSRS服务账户。你当前将MSSQLSvc/SQLSRV:1433注册到了SSRS账户DOMAIN\ssrs_user,这会导致SPN冲突或委派失败:

  • 执行setspn -l DOMAIN\sql_service_account(若SQL服务用本地系统,替换为setspn -l DOMAIN\SQLSRV$),查看是否已存在MSSQLSvc/SQLSRV:1433和MSSQLSvc/SQLSRV.DOMAIN.local:1433。
  • 如果SSRS账户下的MSSQLSvc/SQLSRV:1433是多余的,执行setspn -d MSSQLSvc/SQLSRV:1433 DOMAIN\ssrs_user删除该SPN。

2. 调整SSRS服务账户的委派配置

将宽泛的委派改为约束委派,精准指定可委派的SQL Server服务:

  1. 在ADUC中找到ssrs_user账户,打开属性→委派选项卡。
  2. 选择“信任此用户仅对指定服务进行Kerberos委派”。
  3. 点击“添加”→“用户或计算机”,找到SQLSRV服务器(或SQL服务运行的账户),选择MSSQLSvc类型的服务条目(包含SQLSRV和SQLSRV.DOMAIN.local)。

3. 优化RSReportServer.config配置

确保配置仅启用Kerberos相关认证,避免NTLM干扰:

  • 打开C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer\RSReportServer.config
  • 修改AuthenticationTypes节点为:
    <AuthenticationTypes>
        <RSWindowsNegotiate/>
        <RSWindowsKerberos/>
    </AuthenticationTypes>
    
  • 确认以下配置项为true:
    <WindowsAuthenticationEnabled>true</WindowsAuthenticationEnabled>
    <EnableAuthPersistence>true</EnableAuthPersistence>
    
  • 修改后重启SSRS服务。

4. 检查SSRS数据源的凭据设置

在SSRS数据源配置页面,必须选择:

  • “使用当前用户的Windows凭据连接数据源”
  • 不要勾选“模拟已验证的用户”(除非有特定业务需求)

5. 验证Kerberos认证状态

  • 在SSRSSRV服务器上执行klist purge清除Kerberos缓存,然后访问报表服务器,再执行klist查看是否生成了http/SSRSSRV.DOMAIN.local的Kerberos票据,以及是否能获取到SQL Server的服务票据。
  • 在SQLSRV的SQL Server日志中查看登录失败的详细记录,确认是否存在Kerberos认证失败的具体原因。
  • 执行setspn -X全局检查是否存在SPN重复的情况,排查潜在冲突。

6. 确认DNS解析正确性

Kerberos依赖正确的DNS解析:

  • 在SSRSSRV、SQLSRV及访问SSRS的客户端上,分别ping对方的主机名和FQDN,确认返回的IP地址正确。
  • 检查反向DNS(PTR记录)是否配置正确,确保IP能解析回对应的主机名/FQDN。

内容的提问来源于stack exchange,提问作者Something_Amusing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 15:15:03