2016-04-15 44 views
5

Sto usando V12 Azure SQL.SQL Azure: elenca tutti gli accessi e gli utenti

Per elencare tutti gli accessi (server level) possiamo usare questa ricerca master database:

SELECT * FROM sys.sql_logins; 

per elencare tutti gli utenti (database level) siamo in grado di utilizzare questa query su un database specifico:

SELECT * FROM sys.sysusers; 

Ma come ottenere la corrispondenza tra logins e users?

Dove è lo system table che memorizza questa corrispondenza?

risposta

4

Per trovare il login mappato per un utente, guardare la colonna sid da sys.sysusers.

Questo valore corrisponde alla colonna sid da sys.sql_logins nel database master.

La parte sfortunata è che non è possibile scoprire il nome di accesso per lo SID mentre è collegato allo user database. Dovrai connettere separatamente il database master una volta ottenuto lo sid e una query sys.sys_logins per ottenere il nome.

1

Quando è collegato al master DB è possibile eseguire questa query di fare una lista degli account di accesso e gli Utenti

select l.name as [login name],u.name as [user name] from sysusers u inner join sys.sql_logins l on u.sid=l.sid 

Spero che questo può funzionare