मैं इसी तरह के उत्तर की खोज कर रहा था और यह पाया गया: https://www.pythian.com/blog/httpconsultingblogs-emc-comjamiethomsonarchive20070209sql-server-2005_3s00_-view-all-permissions-_2800_2_2900_-aspx/ । और हाँ, यह खतरनाक sp_MSforeachDB का उपयोग करता है, लेकिन मुझे लगता है कि आदमी को कभी-कभी एक बुरा रैप मिलता है; ;-)
मैं यहां आसान कॉपी-पास्ता के लिए एसक्यूएल पोस्ट करूंगा (मैं इसके लिए क्रेडिट नहीं ले रहा हूं , बस इसे आसानी से सुलभ बना सकता हूं !)।
DECLARE @DB_Users TABLE (DBName sysname, UserName sysname, LoginType sysname
, AssociatedRole varchar(max), create_date datetime, modify_date datetime)
INSERT @DB_Users
EXEC sp_MSforeachdb
'use [?]
SELECT ''?'' AS DB_Name,
case prin.name when ''dbo'' then prin.name + '' (''
+ (select SUSER_SNAME(owner_sid) from master.sys.databases where name =''?'') + '')''
else prin.name end AS UserName,
prin.type_desc AS LoginType,
isnull(USER_NAME(mem.role_principal_id),'''') AS AssociatedRole,
create_date, modify_date
FROM sys.database_principals prin
LEFT OUTER JOIN sys.database_role_members mem
ON prin.principal_id=mem.member_principal_id
WHERE prin.sid IS NOT NULL and prin.sid NOT IN (0x00)
and prin.is_fixed_role <> 1 AND prin.name NOT LIKE ''##%'''
SELECT dbname, username, logintype, create_date, modify_date,
STUFF((SELECT ',' + CONVERT(VARCHAR(500), associatedrole)
FROM @DB_Users user2
WHERE user1.DBName=user2.DBName AND user1.UserName=user2.UserName
FOR XML PATH('')
),1,1,'') AS Permissions_user
FROM @DB_Users user1
WHERE user1.UserName = N'<put your login-name here!>'
GROUP BY dbname, username, logintype, create_date, modify_date
ORDER BY DBName, username