服务帐户和依赖项

Azure DevOps Server 2022 |Azure DevOps Server 2020 |Azure DevOps Server 2019 |TFS 2018

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

重要

不得使用用于安装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。 在自己的部署中,可以创建具有特定名称的TFSServiceTFSReports域帐户,或者可以使用系统帐户网络服务作为 Team Foundation Server 的服务帐户。

重要

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

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

服务帐户针对

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

所需权限和组成员资格

说明


Azure DevOps Services

Account Service (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 或域帐户 应用层
如果安装了 Team Foundation Build) ,Visual Studio Team Foundation 生成服务主机 ( 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 或域帐户 数据层
Account 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服务帐户添加到“基本”或“高级”组。

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

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

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

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