我们最近将虚拟化SQL数据库迁移到主动/主动群集中的裸机解决scheme。 除了SQL Reports,一切都很好。
好吧,我们的设置在这里是与SQL和Reports相关的:
现在,当有人访问他们的桌面上的报告服务网站,并试图运行一个报告,他们得到可怕的login失败,用户'NT AUTHORITY \ ANONYMOUS LOGON'错误。 因此,我为Reporting Services的服务用户添加了所需的SPN:
H:\>setspn -L DOMAIN\ssrs-user Registered ServicePrincipalNames for CN=ssrs-user,OU=Systems,DC=domain,DC=local: MSSQLSvc/SQLCLUSTERDB.domain.local:DATABASE MSSQLSvc/SQLCLUSTERDB:DATABASE http/xxyysq01
刷新和….仍然无法正常工作。 我的Googlesearch引导我将服务用户作为操作系统的一部分添加到Act中,并且在身份validation用户权限之后模拟客户端 。 依然没有。
我前往错误日志。 XXYYSQ01提供以下内容:
An account was successfully logged on. Subject: Security ID: NULL SID Account Name: - Account Domain: - Logon ID: 0x0 Logon Type: 3 New Logon: Security ID: DOMAIN\amason Account Name: amason Account Domain: DOMAIN Logon ID: 0x2d70c77c4 Logon GUID: {955a0a82-c5cf-ca60-d063-cc4a32a363be} Process Information: Process ID: 0x0 Process Name: - Network Information: Workstation Name: Source Network Address: - Source Port: - Detailed Authentication Information: Logon Process: Kerberos Authentication Package: Kerberos Transited Services: - Package Name (NTLM only): - Key Length: 0 This event is generated when a logon session is created. It is generated on the computer that was accessed. The subject fields indicate the account on the local system which requested the logon. This is most commonly a service such as the Server service, or a local process such as Winlogon.exe or Services.exe. The logon type field indicates the kind of logon that occurred. The most common types are 2 (interactive) and 3 (network). The New Logon fields indicate the account for whom the new logon was created, ie the account that was logged on. The network fields indicate where a remote logon request originated. Workstation name is not always available and may be left blank in some cases. The authentication information fields provide detailed information about this specific logon request. - Logon GUID is a unique identifier that can be used to correlate this event with a KDC event. - Transited services indicate which intermediate services have participated in this logon request. - Package name indicates which sub-protocol was used among the NTLM protocols. - Key length indicates the length of the generated session key. This will be 0 if no session key was requested.
XXYYSQ2给我:
An account was successfully logged on. Subject: Security ID: NULL SID Account Name: - Account Domain: - Logon ID: 0x0 Logon Type: 3 New Logon: Security ID: ANONYMOUS LOGON Account Name: ANONYMOUS LOGON Account Domain: NT AUTHORITY Logon ID: 0xe684d0c85 Logon GUID: {00000000-0000-0000-0000-000000000000} Process Information: Process ID: 0x0 Process Name: - Network Information: Workstation Name: XXYYSQ01 Source Network Address: - Source Port: - Detailed Authentication Information: Logon Process: NtLmSsp Authentication Package: NTLM Transited Services: - Package Name (NTLM only): NTLM V1 Key Length: 128 This event is generated when a logon session is created. It is generated on the computer that was accessed. The subject fields indicate the account on the local system which requested the logon. This is most commonly a service such as the Server service, or a local process such as Winlogon.exe or Services.exe. The logon type field indicates the kind of logon that occurred. The most common types are 2 (interactive) and 3 (network). The New Logon fields indicate the account for whom the new logon was created, ie the account that was logged on. The network fields indicate where a remote logon request originated. Workstation name is not always available and may be left blank in some cases. The authentication information fields provide detailed information about this specific logon request. - Logon GUID is a unique identifier that can be used to correlate this event with a KDC event. - Transited services indicate which intermediate services have participated in this logon request. - Package name indicates which sub-protocol was used among the NTLM protocols. - Key length indicates the length of the generated session key. This will be 0 if no session key was requested.
和:
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. Reason: Token-based server access validation failed with an infrastructure error. Check for previous errors. [CLIENT: RE.DA.CT.ED]
哎呀。
有什么我在这里失踪? 我可以从XXYYSQ01本身运行报告,所以我知道这是一个双跳问题。 然而,从我读过的,到目前为止我所做的应该解决这个问题。 没有重复的SPN,我查了一下。
我还在rsreportserver.config文件中将身份validation更改为Negotiate / Kerberos。 连接string是Server = SQLCLUSTERDB \ DATABASE; Initial Catalog = DataBase
任何帮助都将不胜感激。
find它 – 解决scheme是让服务帐户访问来创build自己的SPN。 要做到这一点,只需授予SELF读取和写入servicePrincipalName字段:

一旦你这样做,你将需要重新启动SQL服务。 不要使用集群SQL服务器的服务插件 ! 故障转移群集服务会将此视为故障并将其切换。