2015-02-06 17 views
5

Próbuję odzyskać niektóre informacje o członkostwie w grupie ze starego serwera TFS 2010, dla którego warstwa aplikacji nie jest już dostępna (ale back-end SQL nie zostały usunięte). Wiem, że istnieją programy wiersza polecenia, aby uzyskać informacje o bezpieczeństwie, ale zastanawiam się, czy możliwe jest uzyskanie informacji o zabezpieczeniach (w szczególności przynależności do grupy), które zostały podane tylko dla tabel/widoków bazy danych.Czy można wyświetlić listę wszystkich użytkowników w grupie TFS z serwera SQL Server

+1

Co próbowałeś do tej pory? Czy próbowałeś uzyskać dostęp do bazy danych TFS? Jaki był rezultat? – abatishchev

+0

@abatishchev Mogę uzyskać dostęp do bazy danych TFS, ale szczerze mówiąc nie wiem nawet, gdzie zacząć szukać. Pod naszym serwerem TFS 2013 grupy wydają się być zdefiniowane na poziomie kolekcji, więc moje pierwsze przypuszczenie byłoby gdzieś w bazie danych dla tej kolekcji. – davidk

+1

Wypróbuj 'SELECT * FROM [Tfs_Configuration]. [Dbo]. [Tbl_Identity]' – abatishchev

Odpowiedz

1

Po wywiercenie i niektórych prób i błędów odkryłem, że następujące SQL wydaje się działać

USE MyCollection; 

SELECT 
    --grp.[SamAccountName] 'group_name', 
    member.SamAccountName 'member_name' 
FROM 
    [ADObjects] grp 
    JOIN ADObjectMemberships om ON om.ObjectSID = grp.ObjectSID 
    JOIN ADObjects member ON om.MemberObjectSID = member.ObjectSID 
WHERE 
    grp.SamAccountName = 'MyGroup' 
6

Oto kwerendy używam do listy wszystkich użytkowników i członkostwa w TFS Collection.

Select Object1.DisplayName as Name, 
      Object2.DisplayName as Membership 
From  ADObjectMemberships Member1, 
      ADObjects Object1, 
      ADObjects Object2 
Where  Object1.ObjectSID = Member1.MemberObjectSID and 
      Object2.ObjectSID = Member1.ObjectSID 
Order By Membership, Name 
Powiązane problemy