2012-06-22 56 views
0

我們所處理的數據庫對新用戶具有一些標準權限,但有時用戶需要的權限不止一般(大多數是EXEC到多個SP)。 我一直在管理這些用戶GRANT。但爲了管理目的,我想創建一個包含一些信息的個人表格,以便我可以輕鬆快速地區分角色和用戶信息。選擇[用戶權限]

你知道我可以找到並使用這些信息的系統表嗎?

編輯:

目前,我們正在與SQL Server 2008中

+0

感謝,完全忘了參考。 –

+1

[看到這個答案](http://stackoverflow.com/a/7059579/50552) – Andomar

+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 
+0

用戶還可以通過角色擁有權限 – Andomar