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 的服务帐户。
Team Foundation Server 的服务帐户
虽然 TFS 使用多个服务帐户,但您可以对其中大多数或所有服务帐户使用同一域或工作组帐户。 例如,可以将同一个域帐户“Contoso\Example”同时用作 Team Foundation Server 的服务帐户 (TFSService) 和 SQL Server Reporting Services 的数据源帐户 (TFSReports)。 但是,不同服务帐户的权限级别要求有所不同。 例如,TFSService 必须具有**“作为服务登录”权限,而 TFSReports 必须具有“允许在本地登录”**权限。 如果对它们使用同一个帐户“Contoso\Example”,则必须向该帐户授予这两个权限。 此外,与 TFSReports 所需的权限相比,TFSService 需要更多的权限才能正常运行,如本主题后面的表所示。 为安全起见,应考虑对这两个服务帐户使用不同的帐户。
重要
不能将用于安装 Team Foundation Server 的帐户用作这两个服务帐户中任意一个的帐户。
如果在 Active Directory 域中部署了 Team Foundation Server,则应该为服务帐户设置**“敏感帐户,不能被委派”**选项。 例如,在下表中,应对 TFSService 设置该选项。 有关 Team Foundation Server 文档中用到的所需服务帐户和占位符名称的更多信息,请参见 Team Foundation 安装指南中的主题“安装 Team Foundation Server 所需的帐户”。 有关如何在 Active Directory 中限制帐户委托的详细信息,请参阅 Microsoft 网站上的以下页面:启用委派验证。
因为您必须管理多个服务帐户,所以各服务帐户由标识其功能的占位符名称(在本主题后面的表中列出)指代。 该占位符名称不是用于各服务帐户的帐户的实际名称。 帐户的实际名称因您的部署而异。 在上一个示例中,同时用于 TFSService 和 TFSReports 的帐户为“Contoso\Example”。在您自己的部署中,可以用“TFSService”和“TFSReports”的特定名称创建域帐户,也可以将系统帐户 Network Service 用作 Team Foundation Server 的服务帐户。
重要
除非另有特殊说明,否则下表中的任何组或帐户都不能是 Team Foundation Server 部署中任何服务器上的 Administrators 组的成员。
下表显示可在 TFS 部署中使用的所有服务帐户:
服务帐户 |
占位符名称和适用的帐户类型 |
所需权限和组成员资格 |
备注 |
---|---|---|---|
Team Foundation Server 的服务帐户 |
TFSService,可以是本地帐户、域帐户、工作组中的 Local Service 或域中的 Network Service |
|
此服务帐户用于 Team Foundation Server 的所有 Web 服务。 如果对此帐户使用域帐户,则该域帐户必须是部署中所有计算机均信任的域的成员。 |
SQL Server Reporting Services 的数据源帐户 |
TFSReports,可以是本地帐户、域帐户或工作组中的 Local Service |
|
此服务帐户从 Reporting Services 检索报表数据。 |
Team Foundation Build 的服务帐户 |
TFSBuild,可以是本地帐户、域帐户或工作组中的 Local Service |
作为服务登录 |
在配置生成时以及在生成控制器和生成代理之间传输生成状态信息时使用此服务帐户。 |
实验室管理 的服务帐户 |
TFSLab,可以是本地帐户、域帐户、工作组中的 Local Service 或域中的 Network Service |
作为服务登录 |
在 实验室管理 与在虚拟机上运行的实验室代理之间传输有关 Team Foundation Server 的信息时使用此服务帐户。 |
Team Foundation Server 代理的服务帐户 |
TFSProxy,可以是本地帐户、域帐户、工作组中的 Local Service 或域中的 Network Service |
作为服务登录 |
此服务帐户用于所有代理服务。 如果对此帐户使用域帐户,则该域帐户必须是部署中所有计算机均信任的域的成员。 |
测试代理和测试代理控制器的服务帐户 |
TFSTest,可以是本地帐户、域帐户或域中的 Network Service。 |
作为服务登录 |
在测试代理控制器与测试代理之间传输有关测试的信息时使用此服务帐户。 |
SharePoint Web 应用程序的服务帐户 |
WebAppService |
允许在本地登录 |
对于配置用于 Team Foundation Server 的各 SharePoint Web 应用程序,必须至少为其添加一个服务帐户。 此服务帐户用于创建团队项目门户网站及启用面板功能。 |
Visual Studio Online 的服务帐户 |
帐户服务 (CollectionName) |
无。 如果您使用的是托管的 TFS 部署,则只使用此帐户。 将自动为您创建该帐户,并且可以通过 Team Web Access 的管理页进行查看。 |
在 Visual Studio Online 中创建集合时将自动创建此服务帐户,并且在客户端与托管服务进行通信时将使用此服务帐户。 |
1 您可以在没有此权限的情况下将部署与 SharePoint 产品集成在一起,但如果该服务帐户不是 Farm Administrators 组的成员,则必须执行附加步骤。 有关详细信息,请参阅Integrate with SharePoint Products Without Administrative Permissions。
在服务帐户下运行的服务
下列服务在 Team Foundation Server 部署中的服务帐户下运行:
服务名 |
服务帐户 |
逻辑层 |
---|---|---|
代码覆盖率服务 |
TFSService |
应用层 |
Team Foundation Server Web 服务 |
TFSService |
应用层 |
SQL Server Reporting Services(MSSQLSERVER;如果使用的是命名实例,则为 InstanceName) |
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 生成服务主机(如果安装了 Team Foundation Build) |
TFSBuild |
生成计算机 |
Visual Studio Team Foundation 后台作业代理 |
TFSService |
应用层 |
Visual Studio 测试控制器 |
TFSTest |
任何计算机 |
Visual Studio Test Agent |
TFSTest |
测试计算机 |
分析服务器(MSSQLSERVER,如果使用的是命名实例,则为 InstanceName) |
Local System 或域帐户 |
数据层 |
SQL Server Browser |
Local Service 或域帐户 |
数据层 |
SQL Server(MSSQLSERVER,如果使用的是命名实例,则为 InstanceName) |
Local System、Network Service 或域帐户 |
数据层 |
SQL Server 代理(MSSQLSERVER,如果使用的是命名实例,则为 InstanceName) |
Local System、Network Service 或域帐户 |
数据层 |
帐户服务 (CollectionName) |
自动 |
Web 层(仅限 Visual Studio Online) |
有关 SQL Server 的服务帐户的详细信息,请参阅 Microsoft 网站上的以下页面:SQL Server 联机丛书。 有关 Team Foundation 中的服务帐户的最新信息,请参见Team Foundation Server 安装指南。
备注
如果更改 Team Foundation Build 的服务帐户,则必须确保新服务帐户是 Build Services 组的成员。另外,还要确保该帐户对临时文件夹和 ASP.NET 临时文件夹具有读/写权限。同样,如果更改 Team Foundation Server Proxy 服务的服务帐户,则必须确保该帐户是相应组的成员。有关详细信息,请参阅Setting Up a Build Computer。
问题解答
问:服务帐户是否分配给访问级别组?
**答:**默认情况下,服务帐户会添加到默认访问级别。 如果使利益干系人成为默认访问级别,则必须将 TFS 服务帐户添加到基本或高级组。
问:服务帐户是否需要许可证?
**答:**否。 服务帐户不需要单独的许可证。
问:如何为服务帐户更改密码或帐户?
**答:**请参阅以下主题: