SPN registration for an Analysis Services instance

05/02/2018

本文内容

适用于:

SQL Server Analysis Services

Azure Analysis Services

Power BI Premium

在使用 Kerberos 对客户端和服务标识进行相互身份验证时,服务主体名称 (SPN) 唯一标识 Active Directory 域中的某一服务实例。 SPN 与服务实例运行所基于的登录帐户相关联。

对于通过 Kerberos 身份验证连接到 Analysis Services 的客户端应用程序,Analysis Services 客户端库使用来自连接字符串的主机名以及在 Analysis Services 的任何给定发行版中固定的其他已知变量(例如服务类)构建一个 SPN。

为进行相互身份验证,客户端所构建的 SPN 必须匹配 Active Directory 域控制器 (DC) 上的相应 SPN 对象。 这意味着,您对于单个 Analysis Services 实例可能需要注册多个 SPN,以便涵盖用户在连接字符串上指定主机名所可能采用的所有方法。 例如,您可能需要两个 SPN 以便处理某个服务器的完全限定域名 (FQDN) 以及短计算机名称。 正确注册 Analysis Services SPN 是成功连接所必需的。 如果该 SPN 不存在、格式错误或重复,则连接将失败。

SPN 注册是由 Analysis Services 管理员执行的手动任务。 与 SQL Server 数据库引擎不同,Analysis Services 永远不会在服务启动时自动注册其 SPN。 当使用默认虚拟帐户、域用户帐户或内置帐户(包括服务 SID)运行 Analysis Services 时,必须进行手动注册。

当使用由域管理员创建的预定义托管服务帐户运行服务时,不需要进行 SPN 注册。 请注意,根据您的域的功能级别,注册 SPN 可能要求域管理员权限。

提示

Microsoft Kerberos Configuration Manager for SQL Server 是一款诊断工具,可帮助解决与 Kerberos Configuration Manager for SQL Server相关的连接问题。 有关详细信息,请参阅 Microsoft Kerberos Configuration Manager for SQL Server。

本主题包含以下各节:

在需要 SPN 注册时

在连接字符串上指定 "SSPI = Kerberos" 的任何客户端连接都将引入 Analysis Services 实例的 SPN 注册要求。

将用户标识从客户端应用程序或中间层服务流到 Analysis Services 需要标识委托。 在特定对象上定义每个用户的权限或筛选时,通常会使用标识委托。

涉及标识委托的常见情形如下:在 Analysis Services 中检索数据时,配置中间层服务(例如 Excel Services 或 Reporting Services)进行约束委托,以模拟用户标识。 为支持此行为,在配置 Excel Services 或 Reporting Services 进行约束委托时,您必须提供 Analysis Services SPN 作为目标服务。

Analysis Services 在使用 DirectQuery 模式从 SQL Server 关系数据库为表格数据库检索数据时委托用户标识。 这是 Analysis Services 会将用户标识委托给其他服务的唯一情形。

Analysis Services 的 SPN 格式

使用 “setspn” 注册 SPN。 在较新的操作系统上, “setspn” 作为系统实用工具安装。 有关详细信息,请参阅 SetSPN。

下表介绍 Analysis Services SPN 的每个部分。

元素

说明

服务类

MSOLAPSvc.3 将服务标识为 Analysis Services 实例。 .3 表示在 Analysis Services 传输中使用的 XMLA-over-TCP/IP 协议的版本。 它与产品发行版无关。 因此,在修订协议本身之前,MSOLAPSvc.3 是针对 SQL Server 2005、2008、2008 R2、2012 和 Analysis Services 的任何将来发行版的正确的服务类。

主机名称

标识正在运行服务的计算机。 该名称可以是完全限定域名称或 NetBIOS 名称。 应当为二者都注册 SPN。

为服务器 NetBIOS 名称注册 SPN 时,务必使用 SetupSPN -S 检查是否存在重复的注册。 我们不保证 NetBIOS 名称在林中是唯一的,而拥有重复 SPN 注册可能会导致连接失败。

对于 Analysis Services 负载平衡群集,主机名应该是分配给群集的虚拟名称。

切勿使用 IP 地址创建 SPN。 Kerberos 使用域的 DNS 解析功能。 指定 IP 地址会绕过该功能。

端口号

尽管端口号是 SPN 语法的一部分,但在注册 Analysis Services SPN 时切勿指定端口号。 冒号 ( : ) 字符通常用于在标准 SPN 语法中提供端口号,由 Analysis Services 用来指定实例名称。 对于 Analysis Services 实例,假定端口是默认端口 (TCP 2383) 或者 SQL Server Browser 服务分配的端口 (TCP 2382)。

实例名称

Analysis Services 是可以在同一台计算机上多次安装的可复制的服务。 通过其实例名称标识每个实例。

该实例名称以冒号 ( : ) 字符作为前缀。 例如,假定一个名为 SRV01 的主机以及一个 SSAS-Tabular 命名实例,则 SPN 应该是 SRV01:SSAS-Tabular。

请注意,用于指定命名 Analysis Services 实例的语法不同于其他 SQL Server 实例使用的语法。 其他服务使用反斜杠 ( \ ) 在 SPN 中追加实例名称。

服务帐户

这是 “MSSQLServerOLAPService” Windows 服务的启动帐户。 它可以是 Windows 域用户帐户、虚拟帐户、托管服务帐户 (MSA) 或内置帐户,例如服务 SID、NetworkService 或 LocalSystem。 Windows 域用户帐户可以设置为 domain\user 或格式 user@domain 。

虚拟帐户的 SPN 注册

对于 SQL Server 服务,虚拟帐户是默认的帐户类型。 对于默认实例,虚拟帐户为 nt Service\MSOLAPService ,对于命名实例,则为 nt Service\MSOLAP $ 。

如名称所示,这些帐户不存在于 Active Directory 中。 虚拟帐户只存在于本地计算机上。 连接外部服务、应用程序或设备时,使用本地计算机帐户进行连接。 因此,在虚拟帐户上运行 Analysis Services 的 SPN 注册实际上是计算机帐户的 SPN 注册。

以 NT Service\MSOLAPService 身份运行的默认实例的示例语法

此示例为在默认虚拟帐户下运行的 Analysis Services 默认实例显示 “setspn” 语法。 在此示例中,计算机主机名为 AW-SRV01。 如前所述,SPN 注册必须指定“计算机帐户” 而不是虚拟帐户 “NT Service\MSOLAPService”。

Setspn -s MSOLAPSvc.3/AW-SRV01.AdventureWorks.com AW-SRV01

备注

请记得创建两个 SPN 注册,一个用于 NetBIOS 主机名,另一个用于完全限定的主机域名。 在连接 Analysis Services 时,不同的客户端应用程序使用不同的主机名约定。 有两个 SPN 注册可确保这两个版本的主机名都考虑在内。

以 NT Service\MSOLAP $ 身份运行的命名实例的示例语法

此示例为在默认虚拟帐户下运行的 Analysis Services 命名实例显示 “setspn” 语法。 在此示例中,计算机主机名为 AW-SRV02,实例名为 AW-FINANCE。 同样,它是为 SPN 指定的计算机帐户,而不是虚拟帐户 NT Service\MSOLAP $ 。

Setspn -s MSOLAPSvc.3/AW-SRV02.AdventureWorks.com:AW-FINANCE AW-SRV02

域帐户的 SPN 注册

使用域帐户运行 Analysis Services 实例是一种常见做法。

对于在网络或硬件负载平衡的群集中运行的 Analysis Services 实例而言,需要使用域帐户,且群集中每个实例都在相同的域帐户下运行。

以域用户身份运行的默认实例的示例语法

此示例为在 AdventureWorks 域的域用户帐户 SSAS-Service 之下运行的 Analysis Services 默认实例显示 setspn 语法。

Setspn -s msolapsvc.3/AW-SRV01.Adventureworks.com AdventureWorks\SSAS-Service

提示

通过运行 Setspn -L 或 Setspn -L (取决于注册 SPN 的方式),验证是否已为 Analysis Services 服务器创建了 SPN。 你应 在列表中看到 msolapsvc.3。

内置帐户的 SPN 注册

尽管不建议采用这种做法,但是旧版的 Analysis Services 安装有时会配置为在内置帐户(如 Network Service、Local Service 或 Local System)下运行。

以内置帐户身份运行的默认实例的示例语法

在内置帐户或各服务的SID 下运行的服务的 SPN 注册相当于虚拟帐户使用的 SPN 语法。 不使用帐户名,而是使用机器帐户:

Setspn -s MSOLAPSvc.3/AW-SRV01.AdventureWorks.com AW-SRV01

命名实例的 SPN 注册

Analysis Services 的命名实例会使用 SQL Server Browser 服务检测到的动态端口分配。 使用命名实例时,为 SQL Server Browser Service 和 Analysis Services 命名实例注册 SPN。 有关详细信息,请参阅 与 SQL Server Analysis Services 或 SQL Server 的命名实例建立连接时,需要提供 SQL Server Browser 服务的 SPN。

以 LocalService 身份运行的 SQL Browser Service 的 SPN 示例语法

服务类为 “MSOLAPDisco.3”。 默认情况下,此服务会以 NT AUTHORITY\LocalService 身份运行,这意味着已为计算机帐户设置了 SPN 注册。 在此示例中,计算机帐户为 AW-SRV01,与计算机名相对应。

Setspn -S MSOLAPDisco.3/AW-SRV01.AdventureWorks.com AW-SRV01

SSAS 群集的 SPN 注册

对于 Analysis Services 故障转移群集,主机名应该是分配给群集的虚拟名称。 此为 SQL Server 网络名,是当你在现有 WSFC 基础上安装 Analysis Services 后,SQL Server 安装期间指定的。 可在 Active Directory 中找到此名称。 你还可以在 故障转移群集管理器 | 角色 | 资源"选项卡中找到它。"资源" 选项卡上的 "服务器名称" 应在 SPN 命令中用作 "虚拟名称"。

Analysis Services 群集的 SPN 语法

Setspn -s msolapsvc.3/

请记住,Analysis Services 群集中的节点需要使用默认端口 (TCP 2383) 并且在相同的域用户帐户下运行,以便每个节点都具有相同的 SID。 有关详细信息,请参阅 如何安装群集 SQL Server Analysis Services 。

针对为 HTTP 访问配置的 SSAS 实例的 SPN 注册

根据解决方案要求,您可能已经针对 HTTP 访问配置了 Analysis Services。 如果您的解决方案将 IIS 作为一个中间层组件包括,并且 Kerberos 身份验证是解决方案要求,则您可能需要手动为 IIS 注册 SPN。 有关详细信息,请参阅 如何配置 SQL Server 2008 Analysis Services 和 SQL Server 2005 Analysis Services中的 "在运行 IIS 的计算机上配置设置",以使用 Kerberos 身份验证。

就针对 Analysis Services 实例的 SPN 注册而言,在为 TCP 或 HTTP 配置的实例之间没有差别。 使用 MSMDPUMP ISAPI 扩展插件从 IIS 到 Analysis Services 的连接始终是 TCP。

这意味着,您可以使用前面几节中针对默认实例或命名实例的说明来注册 SPN。 在指定主机名时,请确保使用您在为 HTTP 访问配置服务时在 msmdpump.ini 文件中指定的主机名。

针对在固定端口上侦听的 SSAS 实例的 SPN 注册

您不能在 Analysis Services SPN 注册上指定端口号。 如果您将 Analysis Services 作为默认实例安装并且将其配置为侦听某一固定端口,则现在必须将其配置为侦听默认端口 (TCP 2383)。 对于命名实例,您需要使用 SQL Server Browser 服务和动态端口分配。

另请参阅

怎么修改SQL Server服务器选项,Analysis Services 实例的 SPN 注册 | Microsoft Docs相关推荐

  1. SQL Server 2008中Analysis Services的新特性——深入SQL Server 2008

    SQL Server 2008中Analysis Services的新特性 --深入SQL Server 2008 内容简介: 本书涵盖了SQL Server 2008引入的新功能.作者之一Rober ...

  2. SQL Server服务器名称与默认实例名不一致的修复方法

    SQL Server服务器名称与默认实例名不一致的修复方法 分类: 个人累积 SQl SERVER 数据库复制2011-08-10 09:49 10157人阅读 评论(0) 收藏 举报 sql ser ...

  3. 修改 SQL Server 服务器的 IP 地址

    一.故障描述 对正在运行中的SQL Server服务器修改其IP地址,导致该实例的所有连接都突然中断. 1. 报错 重启实例,报错. 2. Windows事件 打开"事件查看器", ...

  4. 【转】SQL Server服务器名称与默认实例名不一致的修复方法

    服务器级的urn筛选器无效:筛选器必须为空,或服务器属性必须等于实际的服务器名称 这个问题是出在本地连接还是远程连接上,这个问题可能是由于修改过服务器名称导致的.你可以尝试在本地的服务器和SQL Se ...

  5. 何如修改sql服务器名称,如何修改SQL Server 2008数据库服务器名称

    如何修改SQL Server 2008数据库服务器名称 在一个虚拟机中安装了SQL Server 2008,然后将该虚拟机文件复制了一个出来,然后还原成另外一个虚拟机,这样就可以同时使用2个虚拟机来做 ...

  6. sql数据库服务器端口修改,SQL SERVER 2012更改默认的端口号为1772

    打开开始菜单,找到sqlserver的配置管理器,点击打开 按下图配置右边窗口三项: 按下图配置右边三项: 按下图配置右边三项: 点击下图左边的SQL Server网络配置/MSSQLSERVER的协 ...

  7. sql server服务器怎么配置文件,配置 SSAS 以生成内存转储文件 - SQL Server | Microsoft Docs...

    配置 SQL Server Analysis Services 以生成内存转储文件 09/25/2020 本文内容 本文介绍如何将 SQL Server Analysis Services 配置为自动 ...

  8. sql2005配置文件服务器,SQL server服务器版的安装方法

    SQL server服务器版是我们最常用的SQL server版本之一,下面就教您如何在Windows xp系统上安装SQL server服务器版的方法. 一.找一张SQL server服务器版光盘, ...

  9. 如何修改SQL Server 2000身份验证模式和系统管理员

    大家安装SQL Server 2000时,很多人都习惯性的一路下一步,最后就会以windows身份验证作为登录数据库服务器的方式,假如有一天你后悔了,想以sql server的验证方式登陆,那怎么办呢 ...

最新文章

  1. 牛客练习赛81 B. 小 Q 与彼岸花(FWT nlogn做法)
  2. 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
  3. 复杂网络表示的原理,算法和应用
  4. TCP/IP协议讲的明明白白
  5. Docker Compose学习之docker-compose.yml编写规则 及 实战案例
  6. 吴恩达深度学习 ——4.4 为什么使用深层表示
  7. GO语言中的几个关键思想
  8. vue 判断两对象是否一致_vue - 比较两个Json对象是否相等
  9. php ngx_http_auth_basic_module,nginx认证模块ngx_http_auth_basic_module
  10. 诗词大全给力版_亲测有效!小学生古诗词学习的教学攻略,附带教材推荐
  11. 已知标准差用计算机求标准误,【摘自网络】关于标准差、标准误、相对标准差的计算...
  12. Easy Login...So Easy...(base64编码/修改Cookie/社工)-学习笔记
  13. 写给 Linux 初学者的一封信
  14. ⚡写一个有发音的背单词软件⚡——四六级必过系列
  15. day18_雷神_django第一天
  16. GitLab搭建局域网改外网
  17. MTK65XX平台充电调试总结 (转载)
  18. Safari 手机浏览器无法下载的问题
  19. 致命打击:携号转网马上要实施,移动吐血!
  20. 全面讲解Web3.0域名的应用场景-赛道情况-未来挑战

热门文章

  1. SQL server 2005安装问题汇总
  2. 中国式离婚中,林与宋离婚成为定局的时刻
  3. ApplicationContext接口不同应用场景的实现
  4. RocketMQ源码解析-Broker的消息存储
  5. RabbitMQ 延迟插件的作用
  6. Android中ButterKnife的详细使用
  7. 总结替换jar包中指定文件的步骤
  8. Jquery实现无限级树状结构并动态添加增删改等编辑功能
  9. qemu-kvm命令行参数
  10. kvm、qemu-kvm、ibvirt及openstack,之间的关系