MSSQL de Obje Bazlı Yetkileri Görmek
MSSQL de bazı durumlar da instance bazında, veritabanı bazında yetkileri görmek haricinde, hangi kullanıcının belirli bir veritabanında hangi yetkileri var , hangi tablolarda hangi kullanıcının yetkisi var, hangi obje de (stored procedure, view ,table ) görmek isteyebiliriz.
Böyle durumlar da aşağıdaki t-sql cümlesini kullanarak öğrenebilirsiniz.
select permission_name,s.name,o.name,dpr.name,o.type_desc
FROM sys.database_permissions AS dp
INNER JOIN sys.objects AS o ON dp.major_id=o.object_id
INNER JOIN sys.schemas AS s ON o.schema_id = s.schema_id
INNER JOIN sys.database_principals AS dpr ON dp.grantee_principal_id=dpr.principal_id
where o.type_desc != 'SYSTEM_TABLE' and dpr.name!= 'guest' and dpr.name !='public'
order by s.name desc