Încerc să configurez delegația restricționată Kerberos pentru a rezolva problema mea dublu hop problemă.
Folosesc configurația standard SQL Server cu contul virtual (NT SERVICE\MSSQLSERVER
) ca cont de serviciu pentru toate cazurile mele.
Când încerc să efectuez o interogare dublu hop prin Linked Server, primesc această eroare tipică:
Conectarea nu a reușit pentru utilizatorul „NT AUTHORITY\ANONYMOUS LOON”
Configurația arată astfel:
Computer utilizator > HOP > SQL Server A > HOP (Server conectat) > SQL Server B
Și întrebarea mea este de bază Selectați
doar pentru testare. Ca aceasta:
Selectați * Din [Server B].[DB].[Scheme].[Tabel]
Folosind Manager de configurare Kerberos pentru SQL Server Am verificat SPN-urile și setările de delegare pentru serverele mele.
SPN-urile sunt configurate automat:
Și delegarea este setată Nici unul
:
De asemenea, am verificat ce tip de autentificare folosește SQL Server. Pentru a verifica acest lucru, am rulat această interogare pe Server A (de la Acest articol):
SELECTAȚI schemă_autentificare FROM sys.dm_exec_connections WHERE session_id = @@spid ;
Și am primit NTLM
ca răspuns.
Conform acestor rezultate, se pare că îmi lipsesc setările de delegare. Dar întrebarea mea este cum ar trebui să procedez?
Am citit nenumărate articole și am postat și încă nu îmi dau seama. Se pare că ar trebui să fie posibil să utilizați doar contul virtual implicit pentru asta.
Dar fiecare tutorial pe care l-am găsit vorbește fie despre Conturi de domeniu, fie despre Conturi de servicii gestionate. În astfel de cazuri avem aceste conturi prezente în Active Directory, dar cum rămâne cu conturile virtuale implicite? Aceste conturi sunt locale - cum le acord permisiuni de delegare?
Ar trebui să acord permisiunea de delegare pe mașină? Dar cum?
Am încercat să fac asta. Am trecut la Active Directory, mi-am deschis obiectul computer Server A și am făcut asta:
Deci ar trebui să permită serverului A să delege către serverul B. Dar tot nu funcționează. Și Kerberos Configuration Manager încă arată Nici unul
ca tip de delegare.
Folosesc Windows Server 2019 și SQL Server 2019.
@EDITAȚI | ×
Am încercat să folosesc o setare diferită. În loc de „Numai Kerberos” am selectat „Folosiți orice protocol de autentificare” si dupa vreo 10 minute a inceput sa functioneze!.
Totul are sens acum, deoarece conexiunea SSMS a fost încă terminată NTLM
setările „Numai Kerberos” nu ar funcționa.
Dar întrebarea este de ce se mai folosește NTLM
? Este rău și ar trebui să încerc să-l schimb? Dacă da - cum?