解除Team Foundation Server 5個用戶的限制(轉貼)

 

因爲所有的用戶必須加入到Team Foundation Licensed Users組內才能連接上TFS; 所以只要手工修改數據庫,就可以破解5用戶限制了。我們以TFSGuest4帳戶做測試.
具體操作如下:
 
我們先以Team Foundation Server管理員的帳戶連接 Team Foundation Server;然後我們爲Team Foundation Licensed Users組添加用戶;如果超過5個用戶會提示如下顯示:

要破解達到最在用戶數的限制(5),我們就手工修改數據庫吧:
1.       先把TFSGuest4這個帳戶的分配一下權限,例如分配給[Project]/Contributors如下:

2.       選擇”屬性”進入如下窗口:

3.       選擇”Windows用戶或組(W)”;點”添加”;再選擇”TFSGuest4”帳戶;操作後如下:

4.       點確定;
5.     然後打開SQL SERVER 2005;使用SQL Management Studio連接到你的數據庫服務器;找到”TfsIntegration”數據庫下的”tbl_security_identity_cache”
 
 
6.     選擇右鍵打開表”;SQL語句直接找到它的SID;直接用SQL腳本處理下
 SELECT sid FROM tbl_security_identity_cache
where display_name=N'TFSGuest4' and deleted=0
注意:中文的用戶名在之前加N . 即:where [display_name]=N'張三';
     Deleted字段:是否已經刪除;0表示:未刪除;1表示:已刪除
執行後如下:
 
7.     然後再用SQL語句查詢出Team Foundation Licensed Users組的SID;
SELECT sid FROM tbl_security_identity_cache WHERE (display_name = N'Team Foundation Licensed Users') AND (deleted = 0)

8.     然後打開 tbl_security_membership_cache;如下:

9.     打開後;在最後一行container”字段中加入7中查出的SID;member字段中加入6出的SID;
10. 再在 tbl_gss_group_membership表中也加入;”parent_group_sid字段中加入7中查出的SID,member_sid字段中加入6查出的SID;last_update字段定個時間;9有點相同操作:
:6-11步驟;可以用一個SQL腳本添加用戶到Team Foundation Licensed Users組處理:
declare @container varchar(100),@member varchar(100)
SELECT @container=[sid]      
  FROM [TfsIntegration].[dbo].[tbl_security_identity_cache]
where [display_name]=N'Team Foundation Licensed Users' and deleted=0
SELECT @member=[sid]      
  FROM [TfsIntegration].[dbo].[tbl_security_identity_cache]
where [display_name]=N'TFSGuest4' and deleted=0

Insert INTO [TfsIntegration].[dbo].[tbl_security_membership_cache]
[container],[member]
values (@container,@member)

Insert INTO [TfsIntegration].[dbo].[tbl_gss_group_membership]
([parent_group_sid], [member_sid], [last_update])
values (@container, @member, getdate())
將上面的代碼用查詢分析器執行一下就可以了;(只需要執行一次)

如果一不小心刪除了所有“Team Foundation Licensed Users”組中的用戶;就無法登錄TFS,也可以用上面腳本的方法;改一下帳戶名就OK;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章