Team Foundation Server 權限
權限決定了是否授權用戶進行工作區管理和項目創建等操作。在 Team Foundation Server 中創建項目時,無論您選擇哪個過程模板,都會為項目創建四個默認組。默認情況下,為這些組各自定義了一組權限,這些權限決定了組成員可以執行的操作。
· Project Administrator
· Contributor
· Reader
· Build Services。
要管理默認組并創建自定義組,管理員必須了解權限的含義以及顯式設置權限引起的安全問題。
權限設置
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 中,“拒絕”權限優先于包括“允許”在內的所有其他權限設置。例如,用戶可能屬于一個項目中的兩個組。對于其中一個組,“發布測試結果”權限設置為“拒絕”;而另一個組則將此權限設置為“允許”。“拒絕”設置優先級更高,用戶無權發布測試結果。此規則的唯一例外是用戶屬于項目的“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 Administrators)、已添加到 Team Foundation 服務器上的服務器級別的項目級別組以及創建并添加到服務器級別的自定義組設置這些權限。您可以通過在 Team Foundation Server 中右擊 團隊資源管理器 中的服務器,然后單擊“安全”設置這些權限。您可以使用 TFSSecurity 命令行實用工具設置這些權限,帶有 tf: 標識的權限除外。可使用源代碼管理的 tf 命令行實用工具的 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 命令授予 AdminConfiguration 和 AdminConnections 權限,以及 GENERIC_WRITE。 |
改變跟蹤設置 |
DIAGNOSTIC_TRACE |
具有該權限的用戶可以更改跟蹤設置,以收集有關 Team Foundation Server Web 服務的更詳細的診斷信息。 |
觸發事件 |
TRIGGER_EVENT |
具有該權限的用戶可以在 Team Foundation Server 中觸發項目警報事件。該權限只應指派給服務帳戶。 |
管理過程模板 |
MANAGE_TEMPLATE |
具有該權限的用戶可以從 Team Foundation Server 下載、向其上載、創建和編輯過程模板。 |
查看服務器級別信息 |
GENERIC_READ |
具有該權限的用戶可以查看服務器級別的組成員資格以及那些用戶的權限。 |
查看系統同步信息 |
SYNCHRONIZE_READ |
有此權限的用戶可觸發同步事件。該權限只應指派給服務帳戶。 |
項目級別權限
項目級別權限特定于單個項目的用戶和組。您可以通過在 Team Foundation Server 中右擊 團隊資源管理器 中的項目,然后單擊“安全”設置這些權限。另外,您還可以使用 TFSSecurity 命令行實用工具設置這些權限。
權限名稱 |
命令行中的名稱 |
說明 |
管理版本 |
ADMINISTER_BUILD |
具有該權限的用戶可以刪除完成的生成并停止正在進行的生成。 |
刪除此項目 |
DELETE |
有此權限的用戶可以從 Team Foundation Server 刪除他們有權刪除的項目。 |
編輯版本質量 |
EDIT_BUILD_STATUS |
具有該權限的用戶可以通過 Team Foundation Build 用戶界面添加版本質量的相關信息。該信息存儲在 Team Foundation Build 數據庫存儲區中。 |
編輯項目級信息 |
GENERIC_WRITE |
有此權限的用戶可編輯 Team Foundation Server 上用戶和組的項目級別的權限。 |
發布測試結果 |
PUBLISH_TEST_RESULTS |
具有該權限的用戶可以添加或移除團隊項目門戶的測試結果,也可以添加或移除測試運行。 |
啟動版本 |
START_BUILD |
具有該權限的用戶可以通過 Team Foundation Build 用戶界面或從命令行啟動版本。 |
查看項目級信息 |
GENERIC_READ |
具有該權限的用戶可以查看項目級別的組成員資格以及那些項目用戶的權限。 |
寫入版本操作存儲區 |
UPDATE_BUILD |
該權限必須授予運行生成服務所使用的帳戶,以更新 Team Foundation Build 數據庫存儲區。該權限只應指派給服務帳戶,不能指派給單個用戶。 |
工作項跟蹤區域級別權限
區域級別權限特定于單個項目的用戶和組。您可以通過以下方法設置這些權限:右擊 團隊資源管理器 中的項目,然后單擊“區域和迭代”,然后在“區域”選項卡上單擊“安全”。另外,您還可以使用 TFSSecurity 命令行實用工具設置這些權限。
某些工作項跟蹤操作需要多種權限,如刪除節點。 |
||
權限名稱 |
命令行中的名稱 |
說明 |
創建子節點并對子節點排序 |
CREATE_CHILDREN |
有此權限的用戶可以創建新的區域節點。有此權限以及“編輯此節點”權限的用戶可移動或重新排序任何子區域節點。 |
刪除此節點 |
DELETE |
有此權限以及對另一個節點的“編輯此節點中的工作項”權限的用戶可刪除區域節點并對所刪節點中的現有工作項重新分類。刪除的父節點下的任何子節點將同時刪除。 |
編輯此節點 |
GENERIC_WRITE |
具有該權限的用戶可以重命名區域節點。 |
編輯此節點中的工作項 |
WORK_ITEM_WRITE |
具有該權限的用戶可以編輯此區域節點中的工作項。 |
查看此節點 |
GENERIC_READ |
具有該權限的用戶可以查看此節點的安全設置。 |
查看此節點中的工作項 |
WORK_ITEM_READ |
具有該權限的用戶可以查看,但不能編輯或更改此區域節點中的工作項。 |
源代碼管理權限
源代碼管理權限特定于源代碼文件和文件夾。可以通過以下方法設置這些權限:右擊源代碼管理資源管理器中的文件夾或文件,單擊“屬性”,在“安全”選項卡上選擇要更改權限的用戶或組,然后編輯“權限”中列出的權限。您也可以使用 tf(源代碼管理命令行實用工具)設置這些權限。
權限名稱 |
命令行中的名稱 |
說明 |
讀取 |
tf:Read |
具有該權限的用戶可以讀取文件或文件夾的內容。如果用戶對文件夾有“讀”權限,則即使用戶沒有打開文件的權限,用戶仍可以看到文件夾內容以及文件夾中的文件的屬性。 |
簽出 |
tf:PendChange |
具有該權限的用戶可以執行簽出并對文件夾中的項執行掛起更改。掛起更改的示例包括添加、重命名、刪除、撤消刪除、分支和合并文件。 |
簽入 |
tf:Checkin |
具有該權限的用戶可以簽入項并修訂任何提交的變更集注釋。簽入時將提交掛起的更改。 |
標簽 |
tf:Label |
具有該權限的用戶可以對項進行標簽。 |
鎖定 |
tf:Lock |
具有該權限的用戶可以鎖定或取消鎖定文件夾或文件。 |
修訂其他用戶的更改 |
tf:ReviseOther |
即使其他用戶簽入了文件,具有該權限的用戶仍可以編輯該簽入文件上的注釋。 |
取消鎖定其他用戶的更改 |
tf:UnlockOther |
具有該權限的用戶可以取消鎖定其他用戶鎖定的文件。 |
撤消其他用戶的更改 |
tf:UndoOther |
具有該權限的用戶可以撤消其他用戶所做的掛起的更改。 |
管理標簽 |
tf:LabelOther |
具有該權限的用戶可以編輯或刪除其他用戶創建的標簽。 |
操作安全設置 |
tf:AdminProjRights |
具有該權限的用戶可以設置這些文件和文件夾的權限。 |
簽入其他用戶的更改 |
tf:CheckinOther |
具有該權限的用戶可以簽入其他用戶所做的更改。簽入時將提交掛起的更改。 |