0

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

您知道我可以在其中找到并使用这些信息的任何系统表吗?

编辑:

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

4

1 回答 1

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
于 2012-06-22T13:20:24.673 回答