SQL Server 2008:
Как я узнаю, какие роли имеют какой полномочия на данной таблице.
Заранее спасибо.
Вы можете получить все разрешения, предоставленные в базе данных, и отфильтровать их для вашей таблицы:
select permission_name, state, pr.name
from sys.database_permissions pe
join sys.database_principals pr on pe.grantee_principal_id = pr.principal_id
where pe.class = 1
and pe.major_id = object_id('<table_name>')
and pe.minor_id = 0;
Кроме того, вам нужно добавить встроенные разрешения ролей (db_owner, db_datareader, db_datawriter и т.д.). Доступ к объектам также может осуществляться через цепочку прав собственности.
Вы всегда можете узнать свое собственное эффективное разрешение на любой объект, используя fn_my_permissions('table_name', 'OBJECT')