服务帐户和依赖项

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

如果了解每个 Azure DevOps 部署包含的服务和多个服务帐户以及每个部署所依赖的帐户,则可以更好地管理Azure DevOps Server。 根据安装和配置 Azure DevOps 的方式,这些服务和服务帐户可能全部在一台计算机上运行,也可能在多台计算机上运行。 这将更改管理您的部署的某些方面。 例如,如果部署的服务器端组件在多台计算机上运行,则必须确保部署所使用的服务帐户具有访问权限以及正常运行所必需的权限。

Azure DevOps Server具有在部署中的以下计算机上运行的服务和服务帐户:

  • 托管一个或多个数据库的任意服务器Azure DevOps Server
  • 托管应用程序层组件的任何服务器Azure DevOps Server
  • 运行Azure DevOps Server代理的任何计算机
  • 任何生成计算机
  • 任何测试计算机

可以通过各种方式安装和部署Azure DevOps Server的不同功能。 部署中的功能分布决定哪些服务和服务帐户运行在哪些物理计算机上。 此外,你可能需要管理配置为使用Azure DevOps Server的软件程序的服务帐户,例如SQL Server的服务帐户。

服务帐户

尽管Azure DevOps Server使用多个服务帐户,但你可以对大多数或全部帐户使用相同的域或工作组帐户。 例如,可以将同一域帐户Contoso\\Example与 Azure DevOps Server (TFSService) 的服务帐户和数据源帐户用于 SQL Server Reporting Services (TFSReports) 。 但是,不同服务帐户的权限级别要求有所不同。 例如, TFSService 必须具有 “作为服务登录” 权限,而 TFSReports 必须具有 “允许本地登录” 权限。 如果对这两个帐户使用相同的帐户 Contoso\\Example ,则必须向其授予这两个权限。 此外, TFSService 需要的权限比 TFSReports 所需的权限要多得多,如本主题后面的表所示。 为安全起见,应考虑对这两个服务帐户使用不同的帐户。

重要

不得使用用于安装 Azure DevOps Server 的帐户作为其中任一服务帐户的帐户。

如果已在 Active Directory 域中部署Azure DevOps Server,则应为服务帐户设置“帐户敏感且无法委派”选项。 例如,在下表中,应为 TFSService 设置该选项。 有关Azure DevOps Server文档中使用的所需服务帐户和占位符名称的详细信息,请参阅 Team Foundation 安装指南中的主题“安装 Azure DevOps Server 所需的帐户”。 有关 Active Directory 中的帐户委派的详细信息,请参阅 Microsoft 网站上的以下页面: 在 Active Directory 中委派颁发机构

因为您必须管理多个服务帐户,所以各服务帐户由标识其功能的占位符名称(在本主题后面的表中列出)指代。 该占位符名称不是用于各服务帐户的帐户的实际名称。 帐户的实际名称因您的部署而异。 在前面的示例中,用于 TFSServiceTFSReports 的 帐户为 Contoso\\Example。 在你自己的部署中,可以使用 和 TFSReports的特定名称TFSService创建域帐户,也可以使用系统帐户网络服务作为 Team Foundation Server 的服务帐户。

重要

除非另有具体说明,否则下表中的任何组或帐户都不应是部署 Azure DevOps Server 的任何服务器上的 Administrators 组的成员。

下表列出了可在部署 Azure DevOps Server 中使用的大多数服务帐户。 有关此处未列出的其他服务帐户,请参阅 权限和组、服务帐户

服务帐户针对

占位符名称和适用的帐户类型

所需权限和组成员资格

备注


Azure DevOps Services

帐户服务 (CollectionName)

无。 仅当使用 Azure DevOps 的托管部署时,才使用此帐户。

在 Azure DevOps Services 中创建组织时,会自动创建 。 当客户端与托管服务通信时,可以使用它,并且可以通过 Web 门户管理页查看。

Azure DevOps Server

TFSService:可以是本地帐户、域帐户、工作组中的本地服务或域中的网络服务

作为应用程序层服务器上的服务登录

此服务帐户用于所有 Azure DevOps Web 服务。 如果对此帐户使用域帐户,则该域帐户必须是部署中所有计算机均信任的域的成员。

Team Foundation Build

TFSBuild,可以是工作组中的本地帐户、域帐户或本地服务

作为服务登录

在配置生成时以及在生成控制器和生成代理之间传输生成状态信息时使用此服务帐户。

SQL Server Reporting Services

TFSReports,可以是工作组中的本地帐户、域帐户或本地服务

允许在应用程序层服务器上本地登录,并在报表服务器上运行 SQL Server Reporting Services
TFSWareHouseDataReader 的服务器上登录

此服务帐户从 Reporting Services 检索报表数据。

Azure DevOps Server 代理

TFSProxy,可以是本地帐户、域帐户、工作组中的本地服务或域中的网络服务

作为服务登录

用于所有代理服务。 如果对此帐户使用域帐户,则该域帐户必须是部署中所有计算机均信任的域的成员。

测试代理和测试代理控制器

TFSTest:可以是本地帐户、域帐户或域中的网络服务。

作为服务登录

在测试代理控制器和测试代理之间传达有关测试的信息时使用。


在服务帐户下运行的服务

下表列出了在本地 Azure DevOps 部署中的服务帐户下运行的服务。

服务名称 服务帐户 逻辑层
代码覆盖率服务 TFSService 应用层
Azure DevOps Server Web 服务 TFSService 应用层
如果使用命名实例) ,SQL Server Reporting Services ( MSSQLSERVERInstanceName Local System 或域帐户 应用层
报表 Web 服务 Local System、Network Service 或域帐户 应用层
Visual Studio Team Foundation Build Service Host (if Team Foundation Build is installed) TFSBuild 生成计算机
Visual Studio Team Foundation 后台作业代理 TFSService 应用层
Visual Studio Test Controller TFSTest 任何计算机
Visual Studio Test Agent TFSTest 测试计算机
如果使用命名实例) ,Analysis Server (MSSQLSERVERInstanceName Local System 或域帐户 数据层
SQL Server Browser Local Service 或域帐户 数据层
如果使用命名实例) ,SQL Server (MSSQLSERVERInstanceName Local System、Network Service 或域帐户 数据层
如果使用命名实例) ,SQL Server 代理 (MSSQLSERVERInstanceName Local System、Network Service 或域帐户 数据层
帐户服务 (CollectionName) 自动 仅 web 层 (Azure DevOps Services)

有关 SQL Server 的服务帐户的详细信息,请参阅 Microsoft 网站上的以下页面:SQL Server联机丛书。 有关Azure DevOps Server服务帐户的最新信息,请参阅在本地安装和配置 Azure DevOps

注意

如果更改 Team Foundation Build 的服务帐户,必须确保新服务帐户是“生成服务”组的成员。 另外,还要确保该帐户对临时文件夹和 ASP.NET 临时文件夹具有读/写权限。 同样,如果更改 Team Foundation Server 代理服务的服务帐户,必须确保该帐户是相应组的成员。 有关详细信息,请参阅 配置生成系统

问题解答

问:服务帐户是否分配给访问级别组?

答: 默认情况下,服务帐户将添加到默认访问级别。 如果将利益干系人设置为默认访问级别,则必须将 Azure DevOps Server 服务帐户添加到“基本”或“高级”组。

问:服务帐户是否需要许可证?

答: 不是。 服务帐户不需要单独的许可证。

问:如何为服务帐户更改密码或帐户?

答: 请参阅 更改服务帐户或密码