Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да намеря име за вход, потребителско име за база данни или роли на потребител на домейн на sqlserver, който няма собствено име за вход?

Разбирам, че данните за влизане на потребители на домейн са картографирани в AD група?

Трябва да имате предвид, че потребителят може да бъде в няколко AD групи и всяка от тях може да бъде картографирана по някакъв начин в базата данни, което може да е малко объркващо. Освен това означава, че имате нужда от нещо с множество резултати :)

Опитайте това:

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

Мисля, че трябва да грабне правилно всички влизания в Windows Group, които ще бъдат обвързани с определени потребители. След това можете да се присъедините към него за потребители на база данни, т.е.:

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)

Трябва да имате предвид, че през целия път може да се наложи да обработвате цели набори, а не единични стойности.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да извлечете стойности от колона и да актуализирате резултата в друга колона

  2. Типове курсори на SQL Server - Динамичен курсор само за препращане | Урок за SQL Server / Урок за TSQL

  3. SQL Server:Максимална дължина на знаците на имената на обекти

  4. Как да направите ЛЯВО ANTI SEMI JOIN в SQL Server

  5. Сборна функция - Замяна на NULL