Come trovare loginname, nome utente del database, o ruoli di utente di dominio SQLServer che non hanno un proprio accesso?

StackOverflow https://stackoverflow.com/questions/4268100

Domanda

Ho creato un utente di accesso e database denominato "Utenti MYDOMAIN \ dominio". Ho bisogno di trovare ciò che i ruoli di un utente connesso dominio ha, ma tutte le chiamate per ottenere l'utente corrente restituire il dominio nome utente ad es. "Dominio \ nomeutente" non il database nome utente ad es. "Gli utenti MYDOMAIN \ Domain".

Ad esempio, questa query restituisce "dominio \ nomeutente"

select original_login(),suser_name(), suser_sname(), system_user, session_user,  current_user, user_name()

E questa query restituisce 0

select USER_ID()

Voglio il nome utente per database_role_members di query v'è alcuna funzione che restituirlo o in qualsiasi altro modo per ottenere i ruoli degli utenti attuali?

È stato utile?

Soluzione

Capisco che l'Users login dominio è mappato in gruppo di annunci?

Si deve tenere a mente che l'utente può essere in diversi gruppi di annunci e ciascuno di essi può essere mappato in qualche modo nel database che può essere un po 'confuso. Inoltre significa che è necessario qualcosa con più risultati:)

Prova questo:

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

penso che dovrebbe prendere correttamente tutti gli account di accesso di gruppo di Windows che saranno legati a particolari utenti. Dopo di che si può aderire per gli utenti di database cioè:.

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)

È necessario tenere a mente che - tutto il senso - potrebbe essere necessario per gestire tutta la serie piuttosto che valori singoli

.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top