Zoals vermeld in mijn vraagupdate, het wijzigen van het serviceaccount naar Domain2 het probleem opgelost. Dus wat was er aan de hand?
Het probleem - uitgelegd
Voor zover ik kan zien (ook met hulp van een Microsoft-vertegenwoordiger), omdat het serviceaccount oorspronkelijk een Domain1 was gebruiker, kan het niet bepalen van welke lokale domeingroepen de verbindende gebruiker lid is wanneer de gebruiker authenticeert via Kerberos. De belangrijkste aanwijzing dat dit een Kerberos-probleem was, was toen ik met succes verbinding maakte met "Named Pipes" omdat dit NTLM-authenticatie gebruikt.
Algemene oplossing
Om het allemaal samen te brengen, om met succes gebruikers toe te voegen van Domain1 en Domain3 als leden van groepen in Domain2 zodat de groepen kunnen worden gebruikt als SQL Server-aanmeldingen met Windows-authenticatie, hier is een lijst met vereisten (of op zijn minst sterk aangemoedigd):
- Gevestigde vertrouwensrelaties tussen de domeinen
- Er moeten minimaal 1-way trusts worden ingesteld zodat
Domain2vertrouwtDomain1enDomain3
- Er moeten minimaal 1-way trusts worden ingesteld zodat
- Groepen in
Domain2moet het bereik "Domein Lokaal" hebben- Dit is zodat u gebruikers en groepen kunt toevoegen vanuit
Domain1enDomain3 - Zie hier voor meer info
- Dit is zodat u gebruikers en groepen kunt toevoegen vanuit
- Gebruik SQL Server Configuration Manager om een niet-administratief
Domain2aan te wijzen gebruiker als de identiteit van het serviceaccount- MSDN documenteert waarom het gebruik van een domeingebruikersaccount de voorkeur kan hebben
- Hoewel het de bedoeling is dat de configuratiemanager gebruikers toevoegt aan lokale SQL Server 2005-specifieke groepen voor u (d.w.z. SQLServer2005MSSQLUser$MY_MACHINE$MY_INSTANCE), kwam ik een paar gevallen tegen waarin dit niet het geval was. Controleer dus uw lokale groepen om er zeker van te zijn dat ze correct zijn bijgewerkt met uw
Domain2gebruikersaccount. - Hoewel het instellen van SQL Server automatisch de juiste machtigingen voor hun lokale groepen zou moeten toewijzen, kwam ik opnieuw een paar gevallen tegen waarin dit niet het geval was. Als dit je overkomt, kun je dit MSDN-artikel samen met het eerder genoemde artikel raadplegen voor toestemmingsvereisten.
- Configureer een Service Principal Name (SPN) voor de SQL Server instance-host (inclusief eventuele aliassen) en de
Domain2serviceaccount- De SPN is vereist voor wederzijdse authenticatie tussen de client en de serverhost
- Zie dit TechNet-artikel voor meer info
- Afhankelijk van hoe u imitatie wilt gebruiken, kunt u de
Domain2inschakelen te vertrouwen serviceaccount voor delegatie- Zie dit TechNet-artikel voor meer info
- Externe verbindingen inschakelen voor de SQL Service-instantie
- Maak ten slotte aanmeldingen voor het gewenste
Domain2groepen en elkDomain1ofDomain3leden moeten op afstand verbinding kunnen maken!
Opmerking
Zoals altijd bij elke externe netwerkactiviteit, controleert u uw firewalls om er zeker van te zijn dat uw SQL Server-poorten niet worden geblokkeerd. Hoewel de standaardpoort 1433 is, moet u controleren of uw poort vrij is.