SQL Server:表上的权限

dot*_*ner 6 sql sql-server

SQL Server 2008:

如何找出哪种角色对给定表具有什么样的权限.

先感谢您.

Rem*_*anu 6

您可以获取数据库中授予的所有权限并过滤掉您的表:

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;
Run Code Online (Sandbox Code Playgroud)

此外,您还需要添加内置角色权限(db_owner,db_datareader,db_datawriter等).也可以通过所有权链接访问对象.

您始终可以使用在任何对象上找到自己的有效权限 fn_my_permissions('table_name', 'OBJECT')