아래 코드를 사용하여 잘된 데이터베이스에 대한 고아 사용자 목록을 제공하고 있습니다. 이제는 데이터베이스 목록을 반복하여 결과를 단일 테이블로 반환하는 무언가에이 작업을 구현하려고합니다. 여기 SQL - 데이터베이스 목록을 반복하여 고아가 된 사용자에 대한 단일 결과를 반환합니다.
내가 분리 된 사용자를 얻기 위해 사용하고있는 코드입니다 :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
이 부분에 대한 도움이나 조언이 있으면 감사하겠습니다.
이것은 정확히 내가 필요한 것입니다. 많은 감사합니다! – Matt