Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak znaleźć login, nazwę użytkownika bazy danych lub role użytkownika domeny sqlserver, który nie ma własnego loginu?

Rozumiem, że login użytkowników domeny jest zmapowany do grupy AD?

Trzeba mieć na uwadze, że użytkownik może należeć do kilku grup AD i każdą z nich można w jakiś sposób zmapować w bazie danych, co może być nieco bałaganiarskie. Oznacza to również, że potrzebujesz czegoś z wieloma wynikami :)

Spróbuj tego:

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

Myślę, że powinien poprawnie pobierać wszystkie loginy Windows Group, które będą powiązane z konkretnymi użytkownikami. Następnie możesz dołączyć do niego dla użytkowników bazy danych, np.:

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)

Musisz pamiętać, że - przez całą drogę - być może będziesz musiał obsługiwać całe zestawy, a nie pojedyncze wartości.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Problemy płynne NHibernate z wartościami kolumn DATE w programie SQL Server 2008

  2. Korzystanie z transakcji ROLLBACK w SQL Server

  3. SQL Server - połącz się z uwierzytelnianiem Windows

  4. Błąd programu SQL Server Niejawna konwersja, ponieważ sortowanie wartości jest nierozwiązane z powodu konfliktu sortowania.

  5. serwer sql połączony z serwerem Oracle nie zwraca żadnych danych, gdy dane istnieją