服务帐户和依赖项

Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2013

备注

Azure DevOps Server 以前名为 Visual Studio Team Foundation Server。

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

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

  • 承载一个或多个数据库的任何服务器 Team Foundation Server
  • 承载 Team Foundation 的应用层组件的任何服务器
  • 运行 Team Foundation Server 代理的任何计算机
  • 任何生成计算机
  • 任何测试计算机
  • 运行 Visual Studio 的一个或多个组件的任何计算机实验室管理工具版

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

服务帐户

虽然 TFS 使用多个服务帐户,但您可以对其中大多数或所有服务帐户使用同一域或工作组帐户。 例如,你可以使用相同的域帐户 "Contoso \ example" 作为 Team Foundation Server (TFSService) 的服务帐户和 SQL Server Reporting Services (TFSReports) 的数据源帐户。 但是,不同服务帐户的权限级别要求有所不同。 例如, TFSService 必须具有 " 作为服务登录 " 权限,并且 TFSReports 必须具有 "允许在 本地登录 " 权限。 如果对这两个帐户使用相同的帐户 "Contoso \ Example",则必须向其授予这两个权限。 此外, TFSService 需要比 TFSReports 所需的权限更多的权限,如本主题后面的表所示。 为安全起见,应考虑对这两个服务帐户使用不同的帐户。

重要

你不能使用用于安装 Team Foundation Server 的帐户作为其中任一服务帐户的帐户。

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

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

重要

除非特别声明,否则下表中的任何组或帐户都不应是 Team Foundation Server 部署中任何服务器上的 Administrators 组的成员。

下表显示可在 TFS 部署中使用的所有服务帐户:

服务帐户 占位符名称和适用的帐户类型 所需权限和组成员资格 说明
Team Foundation Server 的服务帐户 TFSService,可以是本地帐户、域帐户、工作组中的本地服务或域中的网络服务 在应用层服务器上 以服务形式登录
Team Foundation Server uses1 的任何 SharePoint Web 应用程序的 场管理员
TFSExecRole; 或者,如果此角色不存在于数据库中,则 Team Foundation Server 使用的任何数据库的下列角色组合:
* db_owner
* db_create
此服务帐户用于 Team Foundation Server 的所有 Web 服务。 如果对此帐户使用域帐户,则该域帐户必须是部署中所有计算机均信任的域的成员。
SQL Server Reporting Services 的数据源帐户 TFSReports,可以是本地帐户、域帐户或工作组中的本地服务 允许在应用层服务器和运行 SQL Server Reporting Services 的服务器上 本地登录
Report Server 上的 TFSWareHouseDataReader
此服务帐户从 Reporting Services 检索报表数据。
Team Foundation Build 的服务帐户 Tfsbuild.proj,可以是本地帐户、域帐户或工作组中的本地服务 作为服务登录 在配置生成时以及在生成控制器和生成代理之间传输生成状态信息时使用此服务帐户。
实验室管理工具版的服务帐户 TFSLab,可以是本地帐户、域帐户、工作组中的本地服务或域中的网络服务 作为服务登录 当 Team Foundation Server 与在虚拟机上运行的实验室代理之间传输实验室管理工具版的相关信息时,将使用此服务帐户。
Team Foundation Server 代理的服务帐户 TFSProxy,可以是本地帐户、域帐户、工作组中的本地服务或域中的网络服务 作为服务登录 此服务帐户用于所有代理服务。 如果对此帐户使用域帐户,则该域帐户必须是部署中所有计算机均信任的域的成员。
测试代理和测试代理控制器的服务帐户 TFSTest,可以是本地帐户、域帐户或域中的网络服务。 作为服务登录 在测试代理控制器与测试代理之间传输有关测试的信息时使用此服务帐户。
SharePoint Web 应用程序的服务帐户 WebAppService 允许本地登录 你必须为配置用于 Team Foundation Server 的每个 SharePoint Web 应用程序至少添加一个服务帐户。 此服务帐户用于创建项目门户网站和启用面板功能。
Azure DevOps Services 的服务帐户 帐户服务 (CollectionName) 无。 仅当使用 TFS 的托管部署时,才使用此帐户。 将自动为您创建该帐户,并且可以通过 Team Web Access 的管理页进行查看。 当你在 Azure DevOps Services 中创建集合时,将自动创建此服务帐户,并且在客户端与托管服务进行通信时使用。

1你可以在没有此权限的情况下将你的部署与 SharePoint 产品集成,但如果服务帐户不是场管理员组的成员,则必须执行其他步骤。 有关详细信息,请参阅将Team Foundation Server 与 SharePoint 产品集成,无需管理权限

在服务帐户下运行的服务

以下服务在 Team Foundation Server 部署中的服务帐户下运行:

服务名称 服务帐户 逻辑层
代码覆盖率服务 TFSService 应用层
Team Foundation ServerWeb 服务 TFSService 应用层
如果使用命名实例,则 SQL Server Reporting Services (MSSQLSERVERInstanceName) Local System 或域帐户 应用层
报表 Web 服务 Local System、Network Service 或域帐户 应用层
SharePoint如果 (并配置SharePoint产品以与产品一起使用,则管理Team Foundation Server) Local System、Network Service 或域帐户 应用层
SharePoint如果 (并配置SharePoint产品以与产品一起使用,则计时器Team Foundation Server) 域帐户 应用层
Visual Studio如果安装了 Team Foundation Build, (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 (命名实例实例,) Local System、Network Service 或域帐户 数据层
SQL Server如果使用 (实例,代理将指定 MSSQLSERVERInstanceName) Local System、Network Service 或域帐户 数据层
Account Service (CollectionName) 自动 仅 (Azure DevOps Services Web)

有关适用于 SQL Server 服务帐户的信息,请参阅 Microsoft 网站上以下页面:SQL Server联机书籍。 有关 Team Foundation 中服务帐户的最新信息,请参阅 Team Foundation Server安装指南

备注

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

问题解答

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

答: 默认情况下,服务帐户将添加到默认访问级别。 如果使利益干系人成为默认访问级别,则必须将 TFS 服务帐户添加到基本或高级组。

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

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

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