sql >> Databasteknik >  >> RDS >> Sqlserver

Hur hittar man inloggningsnamn, databasanvändarnamn eller roller för sqlserver-domänanvändare som inte har sin egen inloggning?

Jag förstår att domänanvändares inloggning är mappad till AD-gruppen?

Du måste komma ihåg att användare kan vara i flera AD-grupper och var och en av dem kan mappas på något sätt i databasen som kan vara lite rörig. Det betyder också att du behöver något med flera resultat :)

Prova detta:

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

Jag tror att det borde ta tag i alla Windows Group-inloggningar som kommer att vara knutna till särskilda användare. Efter det kan du gå med i den för databasanvändare, 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 måste komma ihåg att du - hela vägen - kan behöva hantera hela uppsättningar istället för enstaka värden.




  1. välja rad från mysql om id matchar

  2. Hur kan jag skapa och ladda en andra databas i ddev?

  3. PHP Caching - Går det snabbare att spara i databasen eller skapa en fil?

  4. SQL - Subtrahera ett utarmande värde från rader