sql >> Database >  >> RDS >> Sqlserver

Hoe vind je loginnaam, database gebruikersnaam of rollen van sqlserver domeingebruiker die geen eigen login heeft?

Ik begrijp dat de aanmelding voor domeingebruikers is toegewezen aan de AD-groep?

U moet er rekening mee houden dat de gebruiker zich in verschillende AD-groepen kan bevinden en dat elk van hen op de een of andere manier in de database kan worden toegewezen, wat een beetje rommelig kan zijn. Het betekent ook dat je iets nodig hebt met meerdere resultaten :)

Probeer dit:

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

Ik denk dat het alle Windows Group-aanmeldingen die aan bepaalde gebruikers zijn gekoppeld, correct moet pakken. Daarna kunt u er lid van worden voor databasegebruikers, bijvoorbeeld:

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)

Je moet er rekening mee houden dat je - helemaal - misschien hele sets moet verwerken in plaats van enkele waarden.




  1. MySQL-queryfout met CASE en INNER JOIN

  2. Hoe twee velden in laravel en postgres te vergelijken

  3. String splitsen op positie van scheidingsteken met behulp van Oracle SQL

  4. SQL-query, gemiddelde beklommen en paar dat de meeste toppen heeft beklommen