解除Team Foundation Server 5个用户的限制

解除Team Foundation Server 5个用户的限制
[ 2007-10-14 21:24:00 | By: 緈諨dě旋律 ]
 
因为所有的用户必须加入到 Team Foundation Licensed Users 组内才能连接上 TFS; 所以只要手工修改数据库,就可以破解 5 用户限制了。我们以 TFSGuest4 帐户做测试 .
具体操作如下:
 
我们先以 Team Foundation Server 管理员的帐户连接 Team Foundation Server; 然后我们为 Team Foundation Licensed Users 组添加用户 ; 如果超过 5 个用户会提示如下显示 :

解除Team Foundation Server 5个用户的限制_第1张图片
要破解达到最在用户数的限制(5),我们就手工修改数据库吧:
1.       先把TFSGuest4这个帐户的分配一下权限,例如分配给[Project]\Contributors如下:

解除Team Foundation Server 5个用户的限制_第2张图片
2.       选择”属性”进入如下窗口:

解除Team Foundation Server 5个用户的限制_第3张图片
3.       选择”Windows用户或组(W)”;点”添加”;再选择”TFSGuest4”帐户;操作后如下:

解除Team Foundation Server 5个用户的限制_第4张图片
4.       点确定;
5.     然后打开SQL SERVER 2005; 使用 SQL Management Studio 连接到你的数据库服务器 ; 找到 ”TfsIntegration” 数据库下的 ”tbl_security_identity_cache”
 
解除Team Foundation Server 5个用户的限制_第5张图片
 
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 表示 : 已删除
执行后如下 :
 
解除Team Foundation Server 5个用户的限制_第6张图片
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)

解除Team Foundation Server 5个用户的限制_第7张图片
8.     然后打开 tbl_security_membership_cache ; 如下 :

解除Team Foundation Server 5个用户的限制_第8张图片
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  [TfsIntegration] . [dbo] . [tbl_security_membership_cache]
[container] , [member]
s ( @container , @member )
Insert [TfsIntegration].[dbo].[tbl_gss_group_membership]
( [parent_group_sid] , [member_sid] , [last_update] )
s ( @container , @member , getdate ())
将上面的代码用查询分析器执行一下就可以了 ;( 只需要执行一次 )

如果一不小心删除了所有 “Team Foundation Licensed Users” 组中的用户 ; 就无法登录 TFS , 也可以用上面脚本的方法 ; 改一下帐户名就 OK ;
http://blog.taizhou.com/u/xiaotao2008/archives/2007/1018.html

你可能感兴趣的:(server)