Seeing is not believing,testing is believing.

TFS 使用心得--权限管理

上一篇 / 下一篇  2009-08-17 18:06:24 / 个人分类:TFS使用

    最近一段时间负责管理公司技术人员的TFS的权限分配,在此之前,我对tfs一点都不了解,没用过,也没听朋友用过,只在进公司时指导我的组长帮我把这个工具装上,告知要在上面报bug,即bug管理在上面,之后的很长一段时间就只知道tfs可以管理bug,可以管理文档,可以管理源代码,这点是从我负责测试的那个项目下的文件夹中看到的,至于怎么来管理,其中有多复杂,没有太多的了解。

    指导两个月前,接手tfs权限管理工作以来,才知道里面有多复杂,经理只告诉我怎么分配项目成员的项目权限,其他的都不知道,起初还以为这样就万事大吉了,呵呵,原来那些只是皮毛,里面的权限还十分的复杂,这是在我两个月来的管理中琢磨出来的,凭现在对tfs权限管理的了解,基本可以应对公司员工的tfs权限的分配。

    说tfs权限的复杂,其实也不是很复杂,它只是把各部分的权限分开控制,但各部分的权限又可以相互继承,分的多了,操作起来就容易出现问题,关联的多了,更容易出现问题,继而形成了它的复杂度。

    下面来分享一下我的使用心得,我还是刚入手,了解的一点点,拿来汇总一下,以便今后的工作和学习,有帮助的可以看看。

    tfs的权限分不同的级别,不同级别的权限其安全性不同,这点帮助文档中部分信息十分完备:

     权限决定了是否授权用户进行工作区管理和项目创建等操作。当在 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

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

 
 
     我遇到的80%的问题按上面的权限说明基本都解决了,认真摸索一下上面的那些权限,彻底了解了,tfs的权限大概就掌握的差不多了,本人也在摸索过程中。另外,提示一下,当在项目源代码中新建管理文件夹时,一定要注意“继承项目权限”项前面的勾要勾上,不然,会造成无人能添加该文件的管理成员的局面。这个问题难到了我们不少leader,呵呵,最后团队合作才发现了这个问题,大家一定要注意了,不然管理员也无能为力了。】
     暂时总结一下,学习中,不断完善中。。。

TAG:

fqz_fighting的个人空间 引用 删除 fqz_fighting   /   2011-10-26 16:18:45
原帖由cqledison于2011-06-01 17:38:26发表
最近在折腾TFS权限管理问题,能不能想你请教几个问题,能否加我QQ呢:278085300

什么问题?我会尽量帮你解决,我们共同探讨。
引用 删除 cqledison   /   2011-06-01 17:38:26
最近在折腾TFS权限管理问题,能不能想你请教几个问题,能否加我QQ呢:278085300
引用 删除 cqledison   /   2011-06-01 17:37:34
救救我吧
引用 删除 zhengxx3   /   2010-07-14 22:48:32
ding
 

评分:0

我来说两句

Open Toolbar