Déi meescht Leit behandelen e SQL Server-Hostnumm als eng komplett Adress an eng VPN als entweder erlaabt oder net. An der Praxis freet eng benannt Instanz de Client no DNS eng zweet Sich maachen, an déi Sich ass deen Deel, deen en Tunnel am dackste briechen. En expliziten Endpunkt geet drun erlaanscht, dofir kann tcp:host,port funktionéieren, wärend host\INSTANCE auslaf. Den Ënnerscheed ass tëschent dem Service fannen an der Erlaabnis en ze benotzen.

De Mythos: een Hostnumm bedeit ee Port

Den Hostnumm léist sech an eng Adress op, an do ass seng Aarbecht eriwwer. Eng benannt Instanz bäisetzt en Instanznumm, deen de Server an e TCP-Port muss iwwersetzen, an de Client kann en net roden. Port 1433 ass de Standard fir eng Standardinstanz, net eng Eegeschaft vun all Instanz op der Maschinn. Wann een déi zwee als datselwecht behandelt, entsteet de klassesche Symptom: ping geet, DNS geet, de Scan vum 1433 weist näischt, an d'Conclusioun ass, datt d'Netz SQL blockéiert.

Eng zweet Virgab feelt op déiselwecht Manéier: datt et duergeet, TCP 1433 opzemaachen. Wann d'Instanz soss anzwousch lauschtert, beweist en oppenen 1433 just, datt do eppes anescht ass. De Port muss zum Lauschterer passen, an datt de Lauschterer en Detail vun der Konfiguratioun op der Serversäit ass, dat soll een froen anstatt et ze vermuten.

Wat de Client tatsächlech mat enger benannter Instanz mécht

Nodeems den Hosten opgeléist ass, schéckt de Client eng Entdeckungsufro un SQL Server Browser iwwer UDP 1434 a freet, wéi ee Port déi benannt Instanz benotzt. De Browser-Service äntwert aus dem Register vum Server selwer, an duerno mécht de Client eng TCP-Verbindung op dee Port op. Zwee Protokoller an zwee Porte sinn dobäi, ier iwwerhaapt e Login versicht gëtt.

nslookup sqlhost.corp.example
nc -vzu sqlhost.corp.example 1434
Get-Service -Name SQLBrowser

Dofir gëtt eng Blockéierung nëmme vum UDP en Timeout, deen ausgesäit wéi en doudegen Host. Wann de Browser-Service gestoppt oder däiweg gemaach ass, bleift d'Entdeckungsufro onbeäntwert, obwuel d'Datebankmotor leeft an hirem TCP-Port op ass. Wann d'Instanz mat engem statesche Port konfiguréiert ass, freet de Client nach ëmmer, ausser hien huet den Endpunkt direkt kritt. All dës Feeler sinn an der Fehlermeldung vun der Applikatioun d'selwecht, an se brauchen ënnerschiddlech Korrekturen.

De Browser-Service ass eng Komfortfunktioun fir d'Entdeckung, net d'Datebank. En ze stoppen stoppt net de Motor, an en ze starten opengt net den TCP-Port vun der Instanz.

Firwat den expliziten Endpunkt geet, wann den Numm et net geet

En expliziten Endpunkt hëlt d'Sich aus der Rei eraus: de Client verbënnt sech direkt mat der Adress an dem Port, déi Dir genannt hutt. Dat ass als éischt eng Diagnos, net automatesch eng dauerhaft Léisung, well de Port sech ka änneren, wann d'Instanz spéider op e dynamesche Port ëmkonfiguréiert gëtt. Vergläicht déi zwou Formen mat dem selwechte Client an dem selwechte Kont, ier Dir Conclusiounen zitt.

sqlcmd -S "tcp:sqlhost.corp.example,51433" -U app_login -Q "SELECT @@SERVERNAME"
Test-NetConnection sqlhost.corp.example -Port 51433

Wann déi explizit Form geet an déi benannt feelt, ass d'Entdeckung d'Lück, an dir kënnt wielen, wéi Dir se zoumaacht: UDP 1434 duerch den Tunnel erlaaben, oder den Administrateur froen, en statesche Port ze fixéieren an den Endpunkt ze dokumentéieren. Béides si bewosst Entscheedungen mat ënnerschiddleche Maintenance-Käschten. All Port am Beräich opzemaachen ass keng vun deenen zwee, an et ass d'Optioun, déi um Enn vun engem laangen Dag proposéiert gëtt. Schreift d'Wiel op, wou d'Verbindungsstréng wunnen.

Wann keng vun deenen zwou Forme geet, sëtzt de Problem uewerhalb vun der Entdeckung. Iwwerpréift de Lauschterer, d'Route an d'Zougrëffsregel fir de Port, deen d'Instanz tatsächlech benotzt, ier Dir de Browser-Service beschëllegt.

No der Entdeckung: Authentifikatioun an Identitéit sinn getrennt

E Login-Fehler ass en aneren Evenement wéi en Timeout, an d'VPN-Identitéit gëtt duerch den Tunnel net en SQL-Login. Wann de Client de richtege Port erreecht, setzt den Datebankmotor seng eege Authentifikatioun a seng eege Rechter ëm. Béid Etappe an engem Ticket ze vermëschen ass de Wee, wéi en Entdeckungsproblem bei déi falsch Equipe geréit. Liest d'Fehlernummer, ier Dir eppes ännert.

Halt den dokumentéierten Hostnumm, wann den Treiber d'Zertifikat vum Server validéiert, well sech iwwer eng numeresch Adress verbannen dës Kontroll ännere kann, anstatt de urspréngleche Problem ze léisen. Déi nei Microsoft-Treiber verschlësselen par défaut, dofir erschéngt eng Numm-Differenz als Zertifikatsfehler no enger erfollegräicher TCP-Verbindung. Dat ass Fortschrëtt an net en neie Fehler.

De Mythos, deen een opgëtt, ass datt en SQL Server-Hostnumm eng komplett Adress ass. Et ass en Host plus, fir eng benannt Instanz, eng Sich, déi den Tunnel vläicht net dréit. Nennt de Port, nennt den Entdeckungswee, an de nächste Fehler wäert Iech soen, wéi eng Schicht ze reparéieren ass.

Ähnlech Artikelen