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

Loading