用户权限列表(明确有效)

时间:2019-02-16 14:16:53

标签: sql-server

我需要一个用户权限列表,其中包括用户对该数据库具有的所有权限,方法是将该权限分配给该用户,或者是用户通过数据库角色(显式且有效)获取该权限。

到目前为止,我已经设法通过下面的T-SQL来获取用户权限(每个数据库中的每个用户)的列表,但是这些权限仅是显式权限(即,那些显式授予或拒绝的权限),但是是从未输出数据库角色。

DECLARE @command varchar(MAX) 
SELECT @command = 'use ?
if DB_ID("?")>4  
select DB_NAME () DatabaseName, pr.name DB_User, pr.type_desc, pr.authentication_type_desc, pe.state_desc, pe.permission_name, s.name + ''.'' + o.name AS ObjectName  
FROM sys.database_principals AS pr  
JOIN sys.database_permissions AS pe  
    ON pe.grantee_principal_id = pr.principal_id  
JOIN sys.objects AS o  
    ON pe.major_id = o.object_id  
JOIN sys.schemas AS s  
    ON o.schema_id = s.schema_id
where pr.type!=''R'' ' 
EXEC sp_MSforeachdb @command

0 个答案:

没有答案