Ads

11 February 2014

Script To List The Server Roles For Logins

select P.Rolememberships from (select  'EXEC sp_addsrvrolemember @rolename =' + SPACE(1)
        + QUOTENAME(DB_Roles.Roles, '''') + ', @loginame =' + SPACE(1)
        + QUOTENAME(sl.name, '''') as 'Rolememberships'
,sl.sid
from master..syslogins sl
cross join
(
select 'sysadmin' as Roles
union all
select 'securityadmin'
union all
select 'serveradmin'
union all
select 'setupadmin'
union all
select 'processadmin'
union all
select 'diskadmin'
union all
select 'dbcreator'
union all
select 'bulkadmin'
) DB_Roles

where
Case When sl.sysadmin=1 and DB_Roles.Roles='sysadmin' then 'sysadmin'
  When sl.securityadmin=1 and DB_Roles.Roles='securityadmin' then 'securityadmin'
  When sl.serveradmin=1 and DB_Roles.Roles='serveradmin' then 'serveradmin'
  When sl.setupadmin=1 and DB_Roles.Roles='setupadmin' then 'setupadmin'
  When sl.processadmin=1 and DB_Roles.Roles='processadmin' then 'processadmin'
  When sl.diskadmin=1 and DB_Roles.Roles='diskadmin' then 'diskadmin'
  When sl.dbcreator=1 and DB_Roles.Roles='dbcreator' then 'dbcreator'
  When sl.bulkadmin=1 and DB_Roles.Roles='bulkadmin' then 'bulkadmin'
  else null end=DB_Roles.Roles
  ) as p join sysusers su on p.sid=su.sid

No comments:

Post a Comment