Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie finde ich den Anmeldenamen, den Datenbankbenutzernamen oder die Rollen eines SQL Server-Domänenbenutzers, der keinen eigenen Anmeldenamen hat?

Ich verstehe, dass die Domänenbenutzeranmeldung der AD-Gruppe zugeordnet ist?

Sie müssen bedenken, dass Benutzer in mehreren AD-Gruppen sein können und jede von ihnen irgendwie in der Datenbank abgebildet werden kann, was etwas chaotisch sein kann. Außerdem bedeutet es, dass Sie etwas mit mehreren Ergebnissen brauchen :)

Versuchen Sie Folgendes:

select * from sys.server_principals where type_desc = 'WINDOWS_GROUP' and is_member(name) = 1

Ich denke, es sollte alle Windows-Gruppenanmeldungen, die mit bestimmten Benutzern verknüpft sind, richtig erfassen. Danach können Sie sich für Datenbankbenutzer anmelden, z. B.:

Select u.name from YourDB.sys.syslogins l
inner join YourDB.sys.sysusers u
on l.sid = u.sid
where l.loginname = ANY (select * from sys.server_principals where type_desc = 'WINDOWS_GROUP' and is_member(name) = 1)

Sie müssen bedenken, dass Sie möglicherweise ganze Sätze und nicht einzelne Werte handhaben müssen.