在您建立连接到 SQL Server Analysis Services 的命名实例时,都必须具有 SPN SQL Server 浏览器服务

适用于: Microsoft SQL Server 2005 Developer EditionMicrosoft SQL 2005 Server EnterpriseMicrosoft SQL Server 2005 Standard Edition

症状


请考虑以下情形。建立一个连接到 Microsoft SQL Server Analysis Services 的命名实例。然后,SQL Server 浏览器服务确定命名的实例有的端口。连接将使用 Kerberos 身份验证。在这种情况下,SQL Server 浏览器服务的服务主体名称 (SPN) 都需要除了 Analysis Services 的命名实例的 SPN。如果不存在 SQL Server 浏览器服务的 SPN,Kerberos 身份验证失败。

原因


出现这种情况只有当连接字符串包含SSPI = Kerberos参数。在这种情况下,连接被迫使用 Kerberos 身份验证,并且必须配置 SQL Server 浏览器服务的 SPN。


如果连接字符串中不包含SSPI = Kerberos参数,Kerberos 身份验证,通常使用。在连接到 SQL Server 浏览器服务而使用 NTLM 和 NT_ANONYMOUS 帐户。在这种情况下,连接到 SQL Server 浏览器服务是成功的。SQL Server 浏览器服务确定正确的端口。然后,实际的数据库连接将使用 Kerberos 身份验证来提供身份验证,则返回 true。

解决方案


通过使用运行 SQL Server 浏览器服务的帐户,您必须创建 SQL Server 浏览器服务的 SPN。




NetBIOS SPN 的格式如下所示︰
MSOLAPDisco.3/serverHostName
完全限定的域名的格式 SPN 设置,如下所示︰

MSOLAPDisco.3/serverHostName.Fully_Qualified_domainName

如何注册 SPN

您必须是运行Setspn命令域管理员组的成员。

若要在域帐户下运行的浏览器服务创建 SPN,请在命令提示符下运行以下命令︰


Setspn.exe-MSOLAPDisco.3/serverHostName.Fully_Qualified_domainName Browser_Service_Startup_Account




Setspn.exe-MSOLAPDisco.3/serverHostName Browser_Service_Startup_Account
如果在本地系统帐户下运行的浏览器服务,您必须创建 SPN,请在命令提示符下运行下面的命令︰
Setspn.exe-MSOLAPDisco.3/serverHostName.Fully_Qualified_domainName serverHostName Setspn.exe-MSOLAPDisco.3/serverHostName serverHostName

若要验证 SPN

当在域帐户下运行服务︰
Setspn –l Browser_Service_Startup_Account



当服务在本地系统帐户下运行︰
Setspn-l serverHostName

状态


此行为是设计使然。