Team Foundation Server 权限

更新:2007 年 11 月

权限决定了是否授权用户进行工作区管理和项目创建等操作。当在 Team Foundation Server 中创建项目时,无论选择哪种过程模板,都会为该项目创建四个默认组。默认情况下,为这些组各自定义了一组权限,这些权限决定了组成员可以执行的操作。

  • Project Administrator

  • Contributor

  • Reader

  • Build Services

要管理默认组并创建自定义组,管理员必须了解权限的含义以及显式设置权限引起的安全问题。

说明:

本主题不讨论 Windows SharePoint Services 或 SQL Reporting Services 的权限。本主题只讨论在 Team Foundation Server 中设置的权限。

权限设置

Team Foundation Server 中的权限有两种显式授权设置:“拒绝”和“允许”。还有一种隐式授权,它既不将权限设置为“允许”,也不将其设置为“拒绝”。此授权是一种隐式“拒绝”设置,又称为“未设置”。

拒绝

“拒绝”不允许授权用户或组执行权限说明中提到的操作。“拒绝”是 Team Foundation Server 中最强大的权限设置。如果用户所属的 Team Foundation Server 组将特定权限设置为“拒绝”,那么即使用户所属的另一个组将该权限设置为“允许”,该用户仍无法执行该功能。此规则的唯一例外是用户属于项目的“Project Administrators”组的成员或者属于“Team Foundation Administrators”组的成员的情况。如果用户是项目的 Project Administrators同样,如果用户是 Team Foundation“Administrators”组的成员,则该组的特权将覆盖该用户在 Team Foundation Server 中的显式“拒绝”。

允许

“允许”则允许授权用户或组执行权限说明中提到的操作。“允许”是 Team Foundation Server 中第二强大的权限设置。它也是设置最频繁的权限设置。如果不将权限显式设置为“允许”,用户或组将不能在 Team Foundation Server 中执行该操作。

未设置

默认情况下,Team Foundation Server 中的多数权限既没有设置为“拒绝”,也没有设置为“允许”。权限处于“未设置”状态,它隐式拒绝授权用户和组执行权限说明中指定的操作。但是,因为权限既没有显式设置为“拒绝”,也没有显式设置为“允许”,它可以从用户或组所属的其他组继承授权。

继承

当用户或组的权限为“未设置”时,因为 Team Foundation Server 中的权限是可继承的,所以用户或组可能受到其所属组权限的显式设置的影响。例如,如果一个用户属于某一项目中的两个自定义组,其中一个组将权限显式设置为“拒绝”,另一个组将同一权限保留为“未设置”,用户将无权执行该权限所控制的操作(用户从两个组中都继承了权限,“拒绝”优先于“未设置”权限)。

说明:

在 Team Foundation Server 以外(如 Windows SharePoint Services 中)设置的权限,不会在 Team Foundation Server 中继承。本主题中不对其进行讨论。

某些授权设置优先于其他授权设置。在 Team Foundation Server 中,“拒绝”权限优先于包括“允许”在内的所有其他权限设置。例如,用户可能属于一个项目中的两个组。对于其中一个组,“发布测试结果”权限设置为“拒绝”;而另一个组则将该权限设置为“允许”。“拒绝”设置优先级更高,用户无权发布测试结果。此规则的唯一例外是用户属于项目的“Project Administrators”组的成员或者属于“Team Foundation Administrators”组的成员的情况。如果用户是项目的 Project Administrators同样,如果用户是“Team Foundation Administrators”组的成员,则该组的特权将覆盖该用户在 Team Foundation Server 中的显式“拒绝”。

通过 Team Foundation Server 用户界面和命令行设置权限

许多要为 Team Foundation Server 设置的权限是通过 Team Foundation Server 用户界面控制的。您可以根据服务器(服务器级别权限)或项目(项目级别权限)设置这些权限。您还可以根据项目为查看工作项以及与工作项交互设置区域级别权限。有关默认情况下为哪些用户设置哪些权限,以及为 MSF for Agile Software Development 或 MSF CMMI Process Improvement 组设置哪些权限的更多信息,请参见 Team Foundation Server 默认组、权限和角色。有关如何为用户和组设置权限的更多信息,请参见管理用户和组管理权限。有关管理工作项的更多信息,请参见使用 Team Foundation 工作项

服务器级别权限

服务器级别权限不特定于单个项目,而是在服务器范围设置的。只能为三个类别的用户设置这些权限:

  • 服务器级的用户和组,如 Team Foundation Administrators

  • 已在 Team Foundation 服务器上添加至服务器级的项目级组

  • 您创建并添加至服务器级的自定义组

您可以通过在 Team Foundation Server 中右击团队资源管理器中的服务器,然后单击“安全”来设置这些权限。您可以使用 TFSSecurity 命令行实用工具来设置这些权限,带有 tf: 标识的命令行实用工具除外。对于带有 tf: 标识的权限,可使用源代码管理的 tf 命令行实用工具的 Permission 命令设置这些权限。有关更多信息,请参见 TFSSecurity 命令行实用工具命令Permission 命令

权限名称

命令行中的名称

说明

管理搁置的更改

tf: AdminShelvesets

具有该权限的用户可以删除其他用户创建的搁置集。

管理仓库

ADMINISTER_WAREHOUSE

具有该权限的用户可以使用 WarehouseController.asmx Web 服务的 ChangeSetting Web 方法更改仓库设置。例如,您可以允许用户设置计算 OLAP 多维数据集的更新时间间隔。

管理工作区

tf: AdminWorkspaces

具有该权限的用户可以为其他用户创建工作区并删除其他用户创建的工作区。

创建工作区

tf: CreateWorkspace

具有该权限的用户可以创建源代码管理工作区。

创建新项目

CREATE_PROJECTS

具有此权限的用户可以在 Team Foundation Server 中创建新项目。为了成功创建新项目,这些用户必须是 Windows SharePoint Server 中“SharePoint Central Admins”组的成员,并且在 SQL Reporting Services 中具有“内容管理员”权限。

编辑服务器级的信息

GENERIC_WRITE

tf: AdminConfiguration

tf: AdminConnections

具有此权限的用户可以编辑 Team Foundation Server 上用户和组的服务器级别权限。他们可以从 Team Foundation Server 中添加或移除服务器级的 Team Foundation Server 应用程序组。当通过菜单设置时,“编辑服务器级别信息”权限还将隐式允许用户修改源代码管理权限。若要从命令行授予上述所有权限,必须使用 tf.exe Permission 命令授予 AdminConfigurationAdminConnections 权限,以及 GENERIC_WRITE。

说明:

无法删除 Team Foundation Administrators 等默认服务器组。

改变跟踪设置

DIAGNOSTIC_TRACE

具有此权限的用户可以更改跟踪设置,以收集有关 Team Foundation Server Web 服务的更详细的诊断信息。有关跟踪的更多信息,请参见 Team Foundation Server 的跟踪设置

触发事件

TRIGGER_EVENT

具有此权限的用户可以在 Team Foundation Server 中触发项目警报事件。该权限只应指派给服务帐户。

管理过程模板

MANAGE_TEMPLATE

具有此权限的用户可以从 Team Foundation Server 下载、向其上载、创建和编辑过程模板。

查看服务器级别信息

GENERIC_READ

具有该权限的用户可以查看服务器级别的组成员资格以及那些用户的权限。

查看系统同步信息

SYNCHRONIZE_READ

有此权限的用户可触发同步事件。该权限只应指派给服务帐户。

项目级别权限

项目级别权限特定于单个项目的用户和组。您可以通过在 Team Foundation Server 中右击团队资源管理器中的项目,单击“团队项目设置”再单击“安全”来设置这些权限。还可以使用“TFSSecurity”命令行实用工具来设置这些权限。

权限名称

命令行中的名称

说明

删除此项目

DELETE

具有此权限的用户可以从 Team Foundation Server 中删除他们有权删除的项目。

编辑项目级信息

GENERIC_WRITE

具有此权限的用户可以编辑 Team Foundation Server 上用户和组的项目级别权限。

发布测试结果

PUBLISH_TEST_RESULTS

具有该权限的用户可以添加或移除团队项目门户的测试结果,也可以添加或移除测试运行。

查看项目级信息

GENERIC_READ

具有该权限的用户可以查看项目级别的组成员资格以及那些项目用户的权限。

生成级别的权限

生成级别权限特定于单个项目的用户和组。您可以通过右击团队资源管理器中的项目,单击“团队项目设置”再单击“安全”来设置这些权限。另外,您还可以使用 TFSSecurity 命令行实用工具设置这些权限。

权限名称

命令行中的名称

说明

管理版本

ADMINISTER_BUILD

具有该权限的用户可以删除完成的生成并停止正在进行的生成。

编辑版本质量

EDIT_BUILD_STATUS

具有此权限的用户可以通过 Team Foundation Build 用户界面添加有关版本质量的信息。此信息存储在 Team Foundation Build 的数据库存储区中。

启动版本

START_BUILD

具有此权限的用户可以通过 Team Foundation Build 界面或从命令行启动版本。在对版本进行配置以使其无限期保留时,也需要此权限。

写入版本操作存储区

UPDATE_BUILD

必须向用于运行生成服务的帐户授予此权限,才能更新 Team Foundation Build 的数据库存储区。此权限应只分配给服务帐户,而不应分配给单个用户。

工作项跟踪区域级别权限

区域级别权限特定于单个项目的用户和组。您可以通过右击团队资源管理器中的项目,单击“区域和迭代”,在“区域”选项卡上单击“安全”来设置这些权限。另外,您还可以使用 TFSSecurity 命令行实用工具设置这些权限。

说明:

某些工作项跟踪操作需要多种权限。例如,您需要多种权限来删除节点。

权限名称

命令行中的名称

说明

创建子节点并对子节点排序

CREATE_CHILDREN

有此权限的用户可以创建新的区域节点。同时具有此权限以及“编辑此节点”权限的用户可以移动任何子区域节点或对任何子区域节点重新排序。

删除此节点

DELETE

同时具有此权限以及对另一个节点的“编辑此节点”权限的用户可以删除区域节点并对所删节点中的现有工作项重新分类。删除的父节点下的任何子节点将同时删除。

编辑此节点

GENERIC_WRITE

具有该权限的用户可以重命名区域节点。

编辑此节点中的工作项

WORK_ITEM_WRITE

具有该权限的用户可以编辑此区域节点中的工作项。

查看此节点

GENERIC_READ

具有该权限的用户可以查看此节点的安全设置。

查看此节点中的工作项

WORK_ITEM_READ

具有该权限的用户可以查看,但不能编辑或更改此区域节点中的工作项。

工作项跟踪迭代级别权限

迭代级别权限特定于单个项目的用户和组。您可以通过右击团队资源管理器中的项目,单击“区域和迭代”,在“迭代”选项卡上单击“安全”来设置这些权限。另外,您还可以使用 TFSSecurity 命令行实用工具设置这些权限。

说明:

某些工作项跟踪操作需要多种权限。例如,您需要多种权限来删除节点。

权限名称

命令行中的名称

说明

创建子节点并对子节点排序

CREATE_CHILDREN

具有此权限的用户可以创建新的迭代节点。同时具有此权限以及“编辑此节点”权限的用户可以移动任何子迭代节点或对任何子迭代节点重新排序。

删除此节点

DELETE

同时具有此权限以及对另一个节点的“编辑此节点”权限的用户可以删除迭代节点并对所删节点中的现有工作项重新分类。删除的父节点下的任何子节点将同时删除。

编辑此节点

GENERIC_WRITE

具有此权限的用户可以重命名迭代节点。

查看此节点

GENERIC_READ

具有该权限的用户可以查看此节点的安全设置。

源代码管理权限

源代码管理权限特定于源代码文件和文件夹。您可以按以下方法设置这些权限:右击“源代码管理资源管理器”中的文件夹或文件,单击“属性”,在“安全”选项卡上选择要为其更改权限的用户或组,然后编辑“权限”中列出的权限。可以通过使用 tf(源代码管理命令行实用工具)来设置这些权限。

权限名称

命令行中的名称

说明

读取

tf: Read

具有该权限的用户可以读取文件或文件夹的内容。如果用户对文件夹有“读”权限,则即使用户没有打开文件的权限,用户仍可以看到文件夹内容以及文件夹中的文件的属性。

签出

tf: PendChange

具有该权限的用户可以执行签出并对文件夹中的项执行挂起更改。挂起更改的示例包括添加、重命名、删除、撤消删除、分支和合并文件。

签入

tf: Checkin

具有该权限的用户可以签入项并修订任何提交的变更集注释。签入时将提交挂起的更改。

加标签

tf: Label

具有该权限的用户可以对项进行标签。

锁定

tf: Lock

具有该权限的用户可以锁定或取消锁定文件夹或文件。

修订其他用户的更改

tf: ReviseOther

即使其他用户签入了文件,具有该权限的用户仍可以编辑该签入文件上的注释。

取消锁定其他用户的更改

tf: UnlockOther

具有该权限的用户可以取消锁定其他用户锁定的文件。

撤消其他用户的更改

tf: UndoOther

具有该权限的用户可以撤消其他用户所做的挂起的更改。

管理标签

tf: LabelOther

具有该权限的用户可以编辑或删除其他用户创建的标签。

操作安全设置

tf: AdminProjRights

具有该权限的用户可以设置这些文件和文件夹的权限。

签入其他用户的更改

tf: CheckinOther

具有该权限的用户可以签入其他用户所做的更改。签入时将提交挂起的更改。

请参见

任务

如何:设置 Team Foundation Server 管理员权限

如何:设置 Team Foundation Server 项目主管权限

如何:设置 Team Foundation Server 参与者权限

如何:设置 Team Foundation Server 读者权限

概念

Team Foundation Server 默认组、权限和角色

使用 Team Foundation 工作项

其他资源

TFSSecurity 命令行实用工具命令

Team Foundation 版本控制命令行参考

管理用户和组

管理权限