Con queste query T-SQL è possibile, interrogando direttamente il database di SharePoint 2007 (WSS3 - MOSS), sapere dove un utenti e/o gruppo ha accesso (web, liste, cartelle o item) e con quali permessi.

La prima query serve per cercare l'id dell'utente partendo dalla login

T-SQL

select *
from dbo.UserInfo
where tp_login like '%sps-%'
Fate attenzione che la query restitutisce tutti gli utenti presenti su tutte le site collection, se serve una site collection particolare va filtrata per SiteId.

Usando l'id (campo tp_ID, nell'esempio 68) dell'utente nella query successiva, possiamo vedere dove l'utente ha accesso e con quali permessi.

T-SQL

select Ra.SiteId, P.RoleDefWebId, P.WebId, RA.PrincipalId,
	U.tp_login,
	S.FullUrl As SiteUrl,
	W.FullUrl AS WebUrl, P.ScopeUrl,
	R.Title
from RoleAssignment RA
	inner join Roles R 
		on RA.SiteId = R.siteId and RA.RoleId = R.RoleId 
	inner join Perms P
		on P.SiteId = RA.SiteId and P.ScopeId = RA.ScopeId
	inner join Webs W
		on W.SiteId = RA.SiteId and W.Id = P.WebId
	inner join Sites S
		on S.Id = RA.SiteId 
	inner join UserInfo U
		on RA.SiteId = U.tp_SiteId AND RA.PrincipalId = U.tp_ID
where Principalid = 68
La query restituisce le url degli oggetti a cui ha acesso (SiteUrl, WebUrl e ScopeUrl) ed il relativo permesso (Title).
Tags:
Database75 SharePoint498 SharePoint 2007218 SQL90 SQL Server100 T-SQL66
Potrebbe interessarti anche: