---Listet alle Logins mit Sererroles
DECLARE @stmt nvarchar(255)
; with cte as(
SELECT *
FROM
(
SELECT
@@servername [ServerName],
r.name AS [RoleName],
m.name AS [MemberName],
CASE WHEN m.name IS NOT NULL
THEN 'X'
ELSE NULL
END AS IsMember
FROM sys.server_principals r LEFT JOIN sys.server_role_members rm
ON (r.principal_id = rm.role_principal_id) LEFT JOIN sys.server_principals m
ON (rm.member_principal_id = m.principal_id)
WHERE r.type = 'R'
) p
PIVOT
(
MAX (IsMember)
FOR [RoleName] IN ([public], [sysadmin], [securityadmin], [serveradmin], [setupadmin], [processadmin], [diskadmin], [dbcreator], [bulkadmin])
) AS pvt
WHERE MemberName IS NOT NULL
)
select rank() over( Order By [MemberName]) as No,
[ServerName]
,[MemberName]
,COALESCE ([public],'') as [public]
,COALESCE ([sysadmin],'') as [sysadmin]
,COALESCE ([securityadmin],'') as [securityadmin]
,COALESCE ([serveradmin],'') as [serveradmin]
,COALESCE ([setupadmin],'') as [setupadmin]
,COALESCE ([processadmin],'') as [processadmin]
,COALESCE ([diskadmin],'') as [diskadmin]
,COALESCE ([dbcreator],'') as [dbcreator]
,COALESCE ([bulkadmin],'') as [bulkadmin]
from cte