Situatie
Mai jos este o procedura ce intoarce, pentru baza pe care este rulata, toate drepturile utilizatorilor pe obiectele din acea baza , mai exact returneaza cine a dat dreptul, cui i-a dat dreptul, tipul obiectului la care se refera dreptul (functie, procedura, etc), tipul permisiunii (select, exec, etc) precum si numele obiectului pe care este acordata permisiunea.
Solutie
alter procedure UserRights_prc
as
SELECT
grantor_principal.name AS [Grantor],
grantee_principal.name AS [Grantee],
prmssn.permission_name AS [Permission],
sp.type_desc as type,
sp.name
FROM
sys.all_objects AS sp
INNER JOIN sys.database_permissions AS prmssn ON prmssn.major_id=sp.object_id AND prmssn.minor_id=0 AND prmssn.class=1
INNER JOIN sys.database_principals AS grantor_principal ON grantor_principal.principal_id = prmssn.grantor_principal_id
INNER JOIN sys.database_principals AS grantee_principal ON grantee_principal.principal_id = prmssn.grantee_principal_id
WHERE
(SCHEMA_NAME(sp.schema_id)=’dbo’)
ORDER BY sp.type
Leave A Comment?