原文:
解除Team Foundation Server 5个用户的限制
where
display_name
=N
'TFSGuest4'
and
deleted=0
(
[container]
,
[member]
)
s
(
@container
,
@member
)
因为所有的用户必须加入到
Team Foundation Licensed Users
组内才能连接上
TFS;
所以只要手工修改数据库,就可以破解
5
用户限制了。我们以
TFSGuest4
帐户做测试
.
具体操作如下:
我们先以
Team Foundation Server
管理员的帐户连接
Team Foundation Server;
然后我们为
Team Foundation Licensed Users
组添加用户
;
如果超过
5
个用户会提示如下显示
:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/xiaotao2004/333ca56684f04a92b895fa9a28d7fc4e.jpg)
要破解达到最在用户数的限制(5),我们就手工修改数据库吧:
1. 先把TFSGuest4这个帐户的分配一下权限,例如分配给[Project]\Contributors如下:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/xiaotao2004/e6aeb913f11844a9a91ee2671fd56b7b.jpg)
2. 选择”属性”进入如下窗口:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/xiaotao2004/c03499010a9142028f6761d30d9790d9.jpg)
3. 选择”Windows用户或组(W)”;点”添加”;再选择”TFSGuest4”帐户;操作后如下:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/xiaotao2004/415b5e01c6a0455f8be345c8ab8916d4.jpg)
4. 点确定;
5. 然后打开SQL SERVER 2005;
使用
SQL Management Studio
连接到你的数据库服务器
;
找到
”TfsIntegration”
数据库下的
”tbl_security_identity_cache”
表
![](https://p-blog.csdn.net/images/p_blog_csdn_net/xiaotao2004/0288e3ccbe4947be814e2569d1f6c492.jpg)
SELECT
sid
FROM
tbl_security_identity_cache
![](https://p-blog.csdn.net/images/p_blog_csdn_net/xiaotao2004/9728dcc4d3074179bc36f608aa929c3d.gif)
注意
:
中文的用户名在之前加
N .
即:
where [display_name]=N'
张三
';
Deleted
字段
:
是否已经删除
;0
表示
:
未删除
;1
表示
:
已删除
执行后如下
:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/xiaotao2004/7196e71d932f4e6a998c0ae2b6cdf1e3.jpg)
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)
![](https://p-blog.csdn.net/images/p_blog_csdn_net/xiaotao2004/12704f08602640a78a0d8603c59752b6.jpg)
8.
然后打开
”
tbl_security_membership_cache
”
表
;
如下
:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/xiaotao2004/2ef7a3c87d16405787221230cf7b59ff.jpg)
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]
![](https://p-blog.csdn.net/images/p_blog_csdn_net/xiaotao2004/76d5a2e65caa473d8675a8278ec50d1a.gif)
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]
![](https://p-blog.csdn.net/images/p_blog_csdn_net/xiaotao2004/a6cec634c1d44f2ebecc2658a0582552.gif)
![](https://p-blog.csdn.net/images/p_blog_csdn_net/xiaotao2004/fca98bcc94a14bf7b9300f89e6869514.gif)
Insert
[TfsIntegration].[dbo].[tbl_gss_group_membership]
(
[parent_group_sid]
,
[member_sid]
,
[last_update]
)
s
(
@container
,
@member
,
getdate
())
将上面的代码用查询分析器执行一下就可以了
;(
只需要执行一次
)
如果一不小心删除了所有
“Team Foundation Licensed Users”
组中的用户
;
就无法登录
TFS
了
,
也可以用上面脚本的方法
;
改一下帐户名就
OK
了
;