Access Checker - Verifica dei permessi in SharePoint 2007
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
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.
La query restituisce le url degli oggetti a cui ha acesso (SiteUrl, WebUrl e ScopeUrl) ed il relativo permesso (Title).
La prima query serve per cercare l'id dell'utente partendo dalla login
T-SQL
select *
from dbo.UserInfo
where tp_login like '%sps-%'
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