用户的所有数据库的用户权限列表

时间:2010-09-20 20:37:03

标签: sql-server-2005

有什么方法可以通过脚本或工具

知道sql server实例上的用户权限列表

1 个答案:

答案 0 :(得分:0)

这可以为您提供一定的见解 - 但是,您无法真正了解给定用户在有效权利方面的含义(因为他因数据库角色成员资格而拥有的任何权利本身不可见):< / p>

SELECT 
    dp.class,
    dp.class_desc,
    dp.permission_name,
    dp.state_desc, 
    p.name,
    p.principal_id,
    p.type_desc,
    so.name
FROM 
    sys.database_permissions dp
INNER JOIN 
    sys.database_principals p ON dp.grantee_principal_id = p.principal_id
INNER JOIN
    sys.sysobjects so ON dp.major_id = so.id

但基本上,sys.database_permissions(和sys.server_permissions)包含与权限相关的信息,您可以将这些信息加入到其他系统目录视图中以获取您正在查找的信息。

此外,这是基于每个数据库的范围 - 我认为没有任何方法可以立即获得所有数据库的权限。