ALM Rangers – Relatório de Permissões do TFS

Ana, uma administradora de TFS, quer saber a quais recursos do TFS os usuários tem acesso, para identificar potenciais riscos de segurança”. Parece uma user story (ou requisito) bobo, algo tão simples que imaginamos que a ferramenta vai nos mostrar isso em no máximo 3 cliques.

Pois é, não é bem assim! Apesar de ser uma das solicitações mais comuns dos administradores, até hoje o TFS não oferece uma maneira fácil de obter essas informações. Aliás, não oferecia.

Em outubro do ano passado, submeti um projeto para o time dos ALM Rangers sugerindo tal funcionalidade. Esse projeto passou por votação, foi aprovado, foi desenvolvido (infelizmente não consegui participar do desenvolvimento por questões de agenda) e, finalmente, foi concluído.

Tenho o orgulho em anunciar o Extracting effective permissions from TFS Whitepaper and Samples. Ainda não é uma versão final, mas já dá uma boa ajuda.

report

Baixe o guia, rode a ferramenta, veja o seu relatório e, principalmente, forneça o seu feedback. Pode ser aqui neste blog ou mesmo na página oficial do produto.

Espero que gostem.

Abraços e até a próxima!
André Dias

Auditoria: Report de Changesets no TFS

Hoje, um cliente que passará por uma auditoria, me pediu um relatório que exibisse todas as changesets realizadas durante um período, por um determinado usuário e que apresentasse todos os arquivos alterados na changeset.

O TFS não possui nenhum tipo de relatório que apresente essa listagem pronta, mas também não é nada do outro mundo construir um relatório que apresente isso. Com uma simples query você consegue puxar todos os dados para construir o seu report.

Basicamente você precisará consultar as tabelas tbl_Changeset e tbl_Version para obter as changesets e lista de arquivos e depois mais 3 tabelas para conseguir descobrir o nome do usuário, sendo elas tbl_VCIdentityMap, tbl_IdentityMap e tbl_identity, lembrando que apenas a última não está na base da sua Team Project Collection, ela está na base TFS_Configuration.

A query final apresenta o seguinte formato:

1
2
3
4
5
6
7
8
9
10
11
12
SELECT
	cs.ChangeSetId,
	i.DisplayName,
	v.FullPath, 
	cs.Comment,
	cs.CreationDate AS [DATE]
FROM tbl_Changeset cs
		INNER JOIN tbl_Version v ON v.VersionFrom = cs.ChangesetID
		INNER JOIN tbl_VCIdentityMap vcim ON cs.OwnerId = vcim.IdentityId
		INNER JOIN tbl_IdentityMap im ON vcim.TeamFoundationId = im.localId
		INNER JOIN Tfs_Configuration..tbl_identity i ON im.masterId = i.Id		
ORDER BY cs.ChangeSetId DESC

Na imagem 1 podemos ver o histórico de ChangeSets dentro do Visual Studio e na Imagem 2 vemos como tudo está armazenado dentro do SQL Server.

changeset list
Imagem 1 – Changesets no Visual Studio

changeset query
Imagem 2 – Changesets no SQL Server

Espero que ajude nos seus reports de auditoria.

Abraços e até a próxima.
André Dias