搞了幾天的TFS2010權限的設置,學習了這些與大家分享下:
1、TFS權限介紹
Team Foundation Server 權限設置分為顯式授權和隱式授權,顯示授權是設置:“拒絕”和“允許”。 隱式授權,它既不將權限設置為“允許”,也不將權限設置為“拒絕”。 此授權是一種隱式“拒絕”設置,又稱為“未設置”。
2、權限設置要理解的4個重要概念
2.1 拒絕
“拒絕”不允許授權用戶或組執行權限說明中提到的操作。“拒絕”是TFS中最強大的權限設置。 如果用戶所屬的TFS組將特定權限設置為“拒絕”,那么即使用戶所屬的另一個組將該權限設置為“允許”,該用戶仍無法執行該功能。 此規則的唯一例外是用戶屬于項目的“Project Administrators (項目管理員)”組的、團隊項目集合的“Project Collection Administrators”組或Team Foundation Administrators”組。 如果用戶屬于項目的 Project Administrators 組,則該組的權限會覆蓋該用戶在項目中的顯式“拒絕”。 同樣,如果用戶屬于項目的 Project Collection Administrators 組,則該組的權限會覆蓋該用戶在該集合中的顯式“拒絕”。 如果用戶屬于 Team Foundation Administrators 組,則該組的權限會覆蓋該用戶在 Team Foundation Server 中的顯式“拒絕”。
2.2 允許
“允許”則允許授權用戶或組執行權限說明中提到的操作。 “允許”是 TFS中第二強大的權限設置,最常使用。 如果不將權限顯式設置為“允許”,用戶或組將不能在TFS中執行該操作。
2.3 未設置
默認情況下,TFS中的多數權限既沒有設置為“拒絕”,也沒有設置為“允許”。 權限處于“未設置”狀態,它隱式拒絕授權用戶和組執行權限說明中指定的操作。 但是,因為權限既沒有顯式設置為“拒絕”,也沒有顯式設置為“允許”,它可以從用戶或組所屬的其他組繼承授權。
ps:默認新建活新添加的用戶對于權限的操作都是“未設置”。
2.4 繼承
當用戶或組的權限為“未設置”時,由于TFS中的權限是可繼承的,所以用戶或組可能受到其所屬組權限的顯式設置的影響。 例如,用戶可能屬于一個項目中的兩個自定義組。 如果其中一個組的某個權限顯式設置為“拒絕”,另一個組的同一權限未設置,則該用戶將無權執行此權限所控制的操作。 該用戶從兩個組中繼承權限,“拒絕”權限優先于未設置的權限。
ps: 某些授權設置優先于其他授權設置。 在 TFS 中,“拒絕”權限優先于包括“允許”在內的所有其他權限設置(對于該顯式結構)。 如果“拒絕”權限是從層次結構父元素(如版本控制)繼承的,則不優先。 例如,用戶可能屬于一個項目中的兩個組。 對于其中一個組,“發布測試結果”權限設置為“拒絕”;而另一個組則將該權限設置為“允許”。 “拒絕”設置優先級更高,用戶無權發布測試結果。規則的唯一例外是從層次結構父元素繼承顯式“拒絕”或者用戶屬于下列組之一:
Project Administrators
Project Collection Administrators
Team Foundation Administrators
在層次結構(如版本控制和工作項跟蹤)中,在特定對象上設置的顯式權限會覆蓋從父對象繼承的顯式權限
ps:在正式授權設置之前可閱讀msdn資料:Team Foundation Server 默認組、權限和角色。
3、版本控制權限:
默認情況下,下列各組處于版本控制級別:(多于兩個單詞的組名稱全部簡寫。示例:Team Foundation 全部簡寫為TF,Team Foundation Server 簡寫為TFS,ProjectName簡寫為PN, Project Administrator 簡寫為PA,Team Foundation Administrator 簡寫為TFA,Team Project Collection Name 簡寫為TPCN以此類推為組英文名稱的每個首字母大寫組合)
項目級別: PN/PA PN/Contributors PN/Readers PN/Builders
項目集合級別:TPCN/PCA TPCN/PCSA TPCN/PCBSA
自定義的項目集合組,或者項目可以賦予想要的版本控制權限。
版本控制權限表


TFS2010 團隊項目集合級別權限下,新建一個組1,并為自定義的組1設置版本控制權限,和團隊項目級別權限下新建一個組2,并為自定義的組2設置版本控制權限和安全性的項目級別權限,然后將組1加入組2中,那么兩個不同級別組1和組2的版本控制權限誰的優先級高?
這個問題是我提出的,我實踐測試結果:
遵循微軟的權限設置策略,拒絕權限最高,下來是允許權限,最后是未設置。舉例可以這樣分析,為組1設置“鎖定”權限為“允許”,這樣組1中的所有用戶都具有“鎖定”的權限,將組1(團隊項目集合級別的組)加入組2(團隊項目級別的組),為組2設置版本控制權限,假如“鎖定”權限設為“允許”,那么組一種的所有用戶都具有鎖定權限,假如將組2中的“鎖定”權限設置為“拒絕”那么組1中的所有用戶就失去了鎖定的權限,假如將組2的“鎖定”權限設置為“未設置”,那么組1的用戶還是具有鎖定的權限。(以上說明被各種管理員組的成員的權限覆蓋掉了),還有一種情況是假如開始組1中的“鎖定”權限就設置為“拒絕”,組1加入組2之后,組2的“鎖定”權限設置為“允許”,組1中的用戶還是會具有鎖定權限。我理解的是一種就近原則吧!至少還沒有碰見不符合這個的。如果有人打破這條麻煩告訴我一聲。
這個前提是組2的團隊項目級別“安全性”里項目權限要將“查看項目級別信息”設為“允許”。
利用vs2010與具有管理員權限的賬戶在客戶端設置團隊項目用戶版本控制權限
打開vs2010直接點擊— 鏈接到Team Foundation Server 或者在“團隊”—— 鏈接到Team Foundation Server
ps:在團隊菜單下可以進行多個操作。
“鏈接到Team Foundation Server 服務器 ”后 ,團隊資源管理器會自動打開。然后進行你想要的設置。
ps:雙擊團隊資源管理器下的樹形菜單中的“源代碼管理”,可打開“源代碼資源管理器”
團隊資源管理器
團隊項目集合節點
團隊項目集合設置---組成員資格 這一欄下可添加自定義的組,并添加成員,新建的組默認屬于Project Collection Valid Users
團隊項目集合設置---安全性 這一欄設置對團隊項目集合的權限,默認屬于Project Collection Valid Users這個組的具有訪問項目集合的權限。
團隊項目節點
團隊項目設置---組成員資格 這一欄可添加自定義組,并添加成員,新建的組默認屬于Project Collection Valid Users。
團隊項目設置---安全性 這一欄設置對團隊項目的權限,添加自定義的組并設置對于當前團隊項目的權限,然后自定義組的成員就可以依照響應權限訪問到當前項目。一般僅僅賦予“查看項目級別信息”就可訪問到項目。
源代碼管理資源管理器
團隊項目集合節點
屬性---安全性 這一欄可添加、設置自定義組對團隊項目集合下的團隊項目的項目源代碼的操作權限。(這一步的設置針對的是團隊項目集合設置——組成員資格下添加的自定義組的權限,對于團隊項目集合下的團隊項目,只要將設置好的組加入就可適用。)
團隊項目節點
屬性--安全性 這一欄可添加、設置自定義組對團隊項目集合下的團隊項目的項目源代碼的操作權限。(這一步的設置針對項目團隊項目設置——組成成員資格下添加的自定義組的權限,適用于當前項目。)
重要:
源代碼管理中,對于團隊項目集合級別的組,要適用于某一個團隊項目集合下的項目,需要將這個組加入需要適用的團隊項目下“團隊項目設置”中添加的賦予了訪問或者更高級別團隊項目權限的自定義組。當然也可以不用新建將其加入默認組。
默認屬于Project Collection Valid Users組的組或者用戶具有訪問TFS服務器下的團隊項目集合的權限。