2013-04-30 99 views
0

我創建了Windows用戶組,並將這些組作爲登錄添加到MSSQL 2008 R2實例。這些組分配了不同的數據庫角色。現在我想確定哪些是適用於作爲其中一個窗口組的一部分的用戶(x)的有效作用。確定有效的MSSQL數據庫角色成員身份

這是怎麼回事?

回答

2

如果您知道哪個Windows組用戶,你可以使用這個你要檢查在數據庫內:

select p1.name as role, p2.name as member 
from sys.database_role_members m 
inner join sys.database_principals p1 on m.role_principal_id = p1.principal_id 
inner join sys.database_principals p2 on m.member_principal_id = p2.principal_id 
order by 1, 2 

如果你不這樣做,你可以這樣做:

-- Impersonate the user 
execute as login = '<YourDomain\YourUser>' 

-- Check membership 
select name as role 
from sys.database_principals 
where type = 'R' and is_member(name) = 1 

-- When ready, revert out of impersonation 
revert 
+0

非常感謝。此查詢向我顯示分配給特定用戶的固定角色。我想找出已分配給特定用戶的用戶定義數據庫角色。 – user2335406 2013-04-30 12:22:58

+0

它應該告訴你們兩個。你是否已經將上下文更改爲正確的數據庫,即在SSMS中使用'use'語句或數據庫下拉列表? – muhmud 2013-04-30 12:28:19

+0

謝謝Mahmud。我發現了這個錯誤。但現在我的問題是,除非特定用戶直接添加爲登錄到SQL Server,它不顯示角色成員資格。我想看到有效的權限。 – user2335406 2013-05-01 14:57:32

相關問題