因爲所有的用戶必須加入到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”表
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”表;如下:
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了;