sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan finder man loginnavn, databasebrugernavn eller roller for sqlserver domænebruger, der ikke har deres eget login?

Jeg forstår, at domænebrugernes login er knyttet til AD-gruppen?

Du skal huske på, at brugeren kan være i flere AD-grupper, og hver af dem kan kortlægges på en eller anden måde i databasen, hvilket kan være lidt rodet. Det betyder også, at du har brug for noget med flere resultater :)

Prøv dette:

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

Jeg tror, ​​at det skal have fat i alle Windows Group-logins, der vil være knyttet til bestemte brugere. Derefter kan du deltage i det for databasebrugere, dvs.:

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)

Du skal huske på, at du - hele vejen - muligvis skal håndtere hele sæt i stedet for enkelte værdier.




  1. Indstillinger for forbindelsestimeout for Oracle-database

  2. SSIS-problem Kunne ikke dekryptere beskyttet XML-node

  3. Hvordan indsætter man et tidsstempel i Oracle?

  4. Importer en CSV-fil til SQL Server ved hjælp af SqlBulkCopy