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

Come trovare il nome di accesso, il nome utente del database o i ruoli dell'utente del dominio sqlserver che non dispone del proprio accesso?

Comprendo che l'accesso degli utenti di dominio è mappato nel gruppo AD?

Devi tenere a mente che l'utente può trovarsi in diversi gruppi AD e ognuno di essi può essere mappato in qualche modo nel database, il che potrebbe essere un po' disordinato. Inoltre significa che hai bisogno di qualcosa con più risultati :)

Prova questo:

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

Penso che dovrebbe acquisire correttamente tutti gli accessi al gruppo di Windows che saranno legati a utenti particolari. Dopodiché puoi unirti per gli utenti del database, ad esempio:

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)

Devi tenere a mente che, fino in fondo, potresti dover gestire interi set piuttosto che singoli valori.