2012-02-01 72 views
1

我希望能够看到每个数据库用户的报告,看看他具有哪些具体的访问权限,每个数据库对象。我是一个安全noob,并且问题的一部分是无法访问甚至查看生产中创建的用户。用户权限报告

据我所知,权限可以设置在数据库对象级别,这些权限可能会被访问​​角色的成员资格覆盖或被成员资格带到拒绝角色。

是否有人知道会产生所有表,SP,视图等报告的实用程序,以及每个用户有权访问的列表,以便我可以轻松确定,例如,“谁有SELECT表访问权限一个?”或者,不那么隆重,是否有一个查询可以为目标对象名称回答该问题,前提是该实用程序由具有Admin访问权限的人员运行?

回答

0

该查询列出数据库用户的权限:

SELECT 
    (SELECT name FROM sysusers WHERE uid=tblPermissions.grantee_principal_id) as UserName, 
    permission_name, 
    state_desc, 
    (SELECT name FROM sysobjects WHERE id=tblPermissions.major_id) 
FROM sys.database_permissions AS tblPermissions WHERE major_id >=0