我正在使用下面的代码为我提供一个运行良好的数据库的孤立用户列表。我现在正在尝试将其构建成可以遍历数据库列表并在单个表中返回结果的东西。
这是我用来获取孤立用户的代码:
select DB_NAME() AS [Current Database], u.uid, u.name, u.sid, rm.role_principal_id as 'Role ID', dp1.name as 'Role'
from sys.sysusers u
left join sys.syslogins l on UPPER(u.sid) = UPPER(l.sid)
inner join sys.database_role_members rm on rm.member_principal_id = u.uid
left join sys.database_principals dp on dp.principal_id = rm.member_principal_id
left join sys.database_principals dp1 on dp1.principal_id = rm.role_principal_id
where u.uid > 4 and u.issqlrole = 0
--and issqluser = 1 --commented out to include orphaned windows logins
and l.name is null
order by 1
我可以使用以下内容获取数据库列表,但我想结合以上内容依次浏览每个数据库。
SELECT name FROM sys.databases
WHERE database_id > 4
对此的任何帮助或指示将不胜感激!
谢谢 :-)