一不小心删除了“Team Foundation Licensed Users”组中的用户后的恢复

时间:2022-06-26 05:41:08

用VS2005的客户端连接TFS,结果没有输入用户名密码就可以登陆,而且是管理员登陆,觉得很奇怪,于是就找Team Explorer中的权限设置,发现一个Team Foundation Licensed Users组,里面有一个管理员,于是就好奇将其删除,结果就再也连接不了TFS了,结果SQL SERVER 2005的跟踪发现是死在以下的语句中:

exec  sp_executesql N ' -- prc_security_read_is_member
DECLARE @ismember BIT
EXEC prc_security_read_is_member @sid, @groupsid, @ismember OUTPUT
SELECT @ismember
' ,N ' @sid varchar(46),@groupsid varchar(59) ' , @sid = ' S-1-5-21-2604840842-1608877906-3008711727-1113 ' , @groupsid = ' S-1-9-1551374245-1204400969-2402986413-2179408616-0-0-0-0-4 '

这个SP是Tfsintegeration中的一个SP,但是加密的,无法查看。于是就找表,发现有三个表可能有关联:tbl_gss_group_membership、tbl_security_membership_cache、tbl_security_ismember_cache,于是就一个个向里面加数据,加到第三个的时候,突然可以连接TFS,大功告成。以下是语句:

INSERT   INTO  tbl_gss_group_membership(parent_group_sid, member_sid, last_update)
VALUES ( ' S-1-9-1551374245-1204400969-2402986413-2179408616-0-0-0-0-4 ' ' S-1-5-21-2604840842-1608877906-3008711727-1113 ' getdate ())

INSERT   INTO  tbl_security_membership_cache(container, member)
VALUES ( ' S-1-9-1551374245-1204400969-2402986413-2179408616-0-0-0-0-4 ' ' S-1-5-21-2604840842-1608877906-3008711727-1113 ' )

INSERT   INTO  tbl_security_ismember_cache( group , member)
VALUES ( ' S-1-9-1551374245-1204400969-2402986413-2179408616-0-0-0-0-4 ' ' S-1-5-21-2604840842-1608877906-3008711727-1113 ' )