在前面的Blog里面说过,Team Foundation Server Workgroup Edition是一个5用户限制版,所有的用户必须加入到Team Foundation Licensed Users组内才能连接上TFS,假如在实际操作中,不小心删空了Team Foundation Licensed Users组内的所有用户,也许就没有人可以连接上TFS了,这样是不是只有重新安装了呢?(我可是辛苦装了好久才装好TFS的啊)
当然不是。
但是,以下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'Domain Admins' and deleted=0
insert [TfsIntegration].[dbo].[tbl_security_membership_cache]
( [container],[member])
values(@container,@member)
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'Domain Admins' and deleted=0
insert [TfsIntegration].[dbo].[tbl_security_membership_cache]
( [container],[member])
values(@container,@member)
使用SQL Management Studio连接到你的数据库服务器,执行脚本。经过试验,这段脚本在英文版的TFS是有效的,执行完这段脚本,域管理员组的用户就可以连接到TFS了,赶紧登陆调整你的权限设置吧。
如果你要是其他的组也能访问TFS,只要修改'Domain Admins', 改成其他的组名(比如'Domain Users')再运行一次就可以了。
(2006-11-29 )补充:如果提示不能将NULL值插入表,表示找不到组,您可以先在授权管理里面将这个组添加到某个项目的contributors群组,之后再执行语句,应该可以成功。
警告:
1。并不保证这段脚本在其他语言的TFS有效。因为未经测试。
2。这段脚本只是我个人测试和研究,没有得到任何许可和官方验证,对可能产生的任何法律问题和数据损失都不做任何保证和承诺。
不过本人并不推荐这么做,因为这样做可能会带来法律问题,
不过你可以尝试尝试,算是给微软测试一个Bug?