选择[用户权限]

时间:2012-06-22 13:16:14

标签: sql sql-server-2008

我们工作的数据库对新用户有一些标准权限,但有时用户需要的权限多于通常的权限(大多数是EXEC到几个SP)。 我一直在管理这些用户GRANT。但是出于管理目的,我想创建一个包含一些信息的个人表格,以便我可以轻松快速地区分角色和用户信息。

您知道我可以找到并使用此信息的任何系统表吗?

编辑:

我们目前正在使用SQL Server 2008。

1 个答案:

答案 0 :(得分:1)

SELECT
      dp.class_desc, dp.permission_name, dp.state_desc,
      ObjectName = OBJECT_NAME(major_id), GranteeName = grantee.name, GrantorName = grantor.name
      FROM sys.database_permissions dp
      JOIN sys.database_principals grantee on dp.grantee_principal_id = grantee.principal_id
      JOIN sys.database_principals grantor on dp.grantor_principal_id = grantor.principal_id

对于角色:

SELECT
    p.name, p.type_desc, pp.name, pp.type_desc, pp.is_fixed_role
    FROM sys.database_role_members roles
    JOIN sys.database_principals p ON roles.member_principal_id = p.principal_id
    JOIN sys.database_principals pp ON roles.role_principal_id = pp.principal_id