Οι σήραγγες ανεβαίνουν, οι διακομιστές απαντούν στο ping, και η σύνδεση στη βάση δεδομένων εξακολουθεί να αποτυγχάνει με σφάλμα ελέγχου ταυτότητας. Αυτός ο συνδυασμός είναι συνηθισμένος στις συνδέσεις VPN και σπάνια σημαίνει ότι το δίκτυο είναι χαλασμένο, γιατί ένας προσβάσιμος ακροατής και μια αποδεκτή σύνδεση είναι δύο διαφορετικά αποτελέσματα. Η ταυτότητα που ικανοποίησε την πύλη δεν είναι απαραίτητα η ταυτότητα που προσφέρει ο πελάτης της βάσης δεδομένων. Το να βρούμε ποιος λογαριασμός έφτασε είναι όλη η δουλειά.

Το σύμπτωμα: προσβάσιμος διακομιστής, απορριφθείσα σύνδεση

Ένα χρονικό όριο σας λέει ότι το πακέτο δεν έφτασε ποτέ σε ακροατή. Ένα σφάλμα ελέγχου ταυτότητας σας λέει ότι ο ακροατής απάντησε και απέρριψε τα διαπιστευτήρια. Αυτά τα δύο μηνύματα σας στέλνουν σε διαφορετικές ομάδες, και η σύγχυσή τους κοστίζει μια μέρα σε κανόνες τείχους προστασίας που ποτέ δεν ήταν το πρόβλημα.

Όταν το σφάλμα είναι αποτυχημένη σύνδεση, σταματήστε να κοιτάτε τις θύρες. Το ερώτημα που μένει είναι ποια ταυτότητα Windows παρουσίασε ο πελάτης, αν ο διακομιστής δέχτηκε αυτή την ταυτότητα και αν αυτή επιλύθηκε σε χρήστη βάσης δεδομένων με άδεια.

Δύο ταυτότητες, μία σήραγγα

Ο λογαριασμός VPN αυθεντικοποιείται στην πύλη και στις περισσότερες εγκαταστάσεις τελειώνει εκεί. Ο πελάτης της βάσης δεδομένων παρουσιάζει χωριστά ένα διακριτικό Windows, παρμένο από τη διεργασία που τον εκτελεί, ή μια σύνδεση SQL αν το ζητά η συμβολοσειρά σύνδεσης. Ένας τοπικός χρήστης VPN στην πύλη δεν έχει καμία σχέση με τον τομέα που φιλοξενεί τον SQL Server, και η σήραγγα δεν δημιουργεί τέτοια.

Η σύνδεση ενός προσωπικού υπολογιστή σε VPN επίσης δεν τον εντάσσει στον τομέα. Η μετονομασία τοπικού λογαριασμού και η αντιστοίχιση του κωδικού του με χρήστη τομέα δεν είναι διαδικασία εγγραφής, και παράγει διακριτικό που ο ελεγκτής τομέα δεν θα δεχτεί ως αυτόν τον χρήστη.

Μερικοί εγγενείς πελάτες απομακρυσμένης πρόσβασης των Windows μπορούν να επαναχρησιμοποιήσουν τα διαπιστευτήρια VPN για πόρους δικτύου όταν το προφίλ τους είναι έτσι ρυθμισμένο. Αυτή η συμπεριφορά ανήκει σε συγκεκριμένο πελάτη και προφίλ, όχι στις συνδέσεις VPN γενικά, οπότε επαληθεύστε την για τον πελάτη που χρησιμοποιείται αντί να την υποθέσετε.

Διαβάστε τη λειτουργία που ζήτησε ο πελάτης

Η συμβολοσειρά σύνδεσης καθορίζει ποια διαδρομή ελέγχου ταυτότητας ακολουθεί ο πελάτης. Η ενσωματωμένη ασφάλεια χρησιμοποιεί το διακριτικό Windows· ένα ζεύγος χρήστη και κωδικού επιλέγει σύνδεση SQL. Είναι ξεχωριστές λειτουργίες στη ρύθμιση του διακομιστή, και μόνο μία από αυτές μπορεί να είναι ενεργή για μια δεδομένη απόπειρα σύνδεσης.

Server=tcp:sql.lab.example,1433;Database=ops;Integrated Security=SSPI;Encrypt=True;TrustServerCertificate=False;

Η μετάβαση σε σύνδεση SQL επειδή απέτυχε η σύνδεση Windows είναι λύση ανάγκης που κρύβει το ερώτημα της ταυτότητας, και συνήθως απαιτεί ούτως ή άλλως τη δημιουργία νέας σύνδεσης και κωδικού. Αν η εγκατάσταση απαιτεί έλεγχο ταυτότητας Windows, κρατήστε τη λειτουργία και διορθώστε τη διαδρομή ταυτότητας. Η σύνδεση SQL χρειάζεται επίσης δικά της δικαιώματα, άρα η λύση ανάγκης αγοράζει έναν δεύτερο λογαριασμό για συντήρηση.

Επιβεβαιώστε επίσης ποια εφαρμογή συνδέεται. Μια υπηρεσία που εκτελείται ως λογαριασμός συστήματος, μια προγραμματισμένη εργασία και ένα διαδραστικό παράθυρο ερωτήματος μπορούν να παρουσιάσουν τρία διαφορετικά διακριτικά στον ίδιο υπολογιστή, και μόνο το τελευταίο ταιριάζει με αυτό που βλέπει ο χρήστης όταν εκτελεί whoami.

Ρωτήστε τον διακομιστή τι είδε πραγματικά

Ο διακομιστής μπορεί να σας πει ποια σύνδεση επέλυσε και πώς αυθεντικοποιήθηκε η σύνδεση. Εκτελέστε το ερώτημα μέσα στη συνεδρία που ερευνάται, γιατί μια ξεχωριστή επιτυχημένη σύνδεση του διαχειριστή δεν αποδεικνύει τίποτα για τον πελάτη που αποτυγχάνει.

SELECT ORIGINAL_LOGIN() AS original_login,
       SUSER_SNAME() AS current_context;
SELECT auth_scheme, net_transport
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;

Η πρώτη γραμμή ξεχωρίζει τη σύνδεση που άνοιξε τη συνεδρία από το πλαίσιο ασφαλείας που ισχύει τώρα, και αυτά διαφέρουν υπό πλαστοπροσωπία. Η δεύτερη ονομάζει το σχήμα ελέγχου ταυτότητας, ώστε τα KERBEROS, NTLM και SQL να γίνουν ορατά γεγονότα αντί για εικασίες. Μια σύνδεση που αναφέρει NTLM εκεί που περιμένατε Kerberos είναι πρόβλημα επίλυσης ονομάτων ή SPN, όχι πρόβλημα κωδικού.

Ο αριθμός σφάλματος το περιορίζει περισσότερο. Η κατάσταση 5 συνήθως σημαίνει ότι το όνομα σύνδεσης δεν επιλύθηκε καθόλου, η κατάσταση 8 συνήθως σημαίνει ότι ο κωδικός δεν ταίριαξε, και η κατάσταση 11 σημαίνει ότι τα διαπιστευτήρια έγιναν δεκτά αλλά η πρόσβαση στον διακομιστή απέτυχε. Ζητήστε από τον διαχειριστή την κατάσταση αντί για ολόκληρο το μήνυμα, γιατί το μήνυμα μόνο του είναι σκόπιμα αόριστο.

What you observeWhat it suggests
Timeout, no listenerRoute, firewall or wrong port
Login failed, state 5Name not resolved in the domain
Login failed, state 11Authenticated but no server access
Connected as NTLMTarget name or SPN mismatch

Όταν φτάνει η ταυτότητα και το Kerberos εξακολουθεί να αποτυγχάνει

Αν ο διακομιστής βλέπει την επιδιωκόμενη ταυτότητα Windows και η ενσωματωμένη αυθεντικοποίηση εξακολουθεί να αποτυγχάνει, το πρόβλημα είναι η ίδια η ανταλλαγή. Το Kerberos χρειάζεται το κύριο όνομα υπηρεσίας (SPN) καταχωρισμένο για τον λογαριασμό υπηρεσίας SQL και έναν πελάτη που ζητά την υπηρεσία με όνομα που ταιριάζει. Η σύνδεση με διεύθυνση IP δεν μπορεί να ταιριάξει με SPN βασισμένο σε όνομα, και ένα ψευδώνυμο μπορεί να ταιριάξει μόνο αν είναι κι αυτό καταχωρισμένο. Ελέγξτε πρώτα το όνομα που πληκτρολόγησε ο πελάτης, γιατί μια σύνδεση που λειτουργεί με όνομα κεντρικού υπολογιστή και αποτυγχάνει με IP περιγράφει ακριβώς αυτό το πρόβλημα.

Ζητήστε από τον διαχειριστή να εξετάσει την καταχωρισμένη ταυτότητα και τον λογαριασμό υπηρεσίας αντί να δημιουργεί διπλότυπα SPN δοκιμάζοντας. Οι διπλότυπες καταχωρίσεις παράγουν διακοπτόμενες αποτυχίες που διαγιγνώσκονται δυσκολότερα από το αρχικό πρόβλημα.

Αφού λειτουργήσει ο έλεγχος ταυτότητας, η σύνδεση χρειάζεται ακόμη χρήστη βάσης δεδομένων και δικαιώματα. Μια επιτυχημένη σύνδεση VPN, μια επιτυχημένη σύνδεση Windows και το δικαίωμα ανάγνωσης συγκεκριμένου πίνακα είναι τρία ξεχωριστά αποτελέσματα, και το καθένα αξίζει τον δικό του έλεγχο πριν κλείσει το αίτημα.

Σχετικά άρθρα