Rozwiązywanie problemów z uwierzytelnianiem usługi Active Directory dla programu SQL Server w systemie Linux i kontenerach
Dotyczy:programu SQL Server — Linux
Ten artykuł ułatwia rozwiązywanie problemów z uwierzytelnianiem usług Active Directory Domain Services w programie SQL Server w systemie Linux i kontenerach. Zawiera on testy wymagań wstępnych i porady dotyczące pomyślnej konfiguracji usługi Active Directory oraz listę typowych błędów i kroków rozwiązywania problemów.
Weryfikowanie bieżącej konfiguracji
Przed rozpoczęciem rozwiązywania problemów należy zweryfikować bieżącego użytkownika, mssql.conf
, nazwę główną usługi (SPN) i ustawienia obszaru.
Uzyskaj lub odnowij bilet TGT Kerberos (bilet przyznawania) przy użyciu
kinit
:kinit privilegeduser@CONTOSO.COM
Uruchom następujące polecenie, upewniając się, że użytkownik, pod którym uruchamiasz to polecenie, ma dostęp do
mssql.keytab
:/opt/mssql/bin/mssql-conf validate-ad-config /var/opt/mssql/secrets/mssql.keytab
Aby uzyskać więcej informacji na temat polecenia
validate-ad-config
, wyświetl pomoc przy użyciu polecenia/opt/mssql/bin/mssql-conf validate-ad-config --help
.
Wyszukiwania DNS i odwrotne wyszukiwania DNS
Wyszukiwania DNS w nazwie domeny i nazwie NetBIOS powinny zwrócić ten sam adres IP, który zwykle jest zgodny z adresem IP kontrolera domeny (DC). Uruchom te polecenia z maszyny hosta programu SQL Server.
nslookup contoso nslookup contoso.com
Jeśli adresy IP nie są zgodne, zobacz Dołączanie programu SQL Server na hoście z systemem Linux do domeny usługi Active Directory, aby naprawić odwołania DNS i komunikację z kontrolerem domeny.
Wykonaj odwrotne wyszukiwanie DNS (rDNS) dla każdego adresu IP wymienionego w poprzednich wynikach. Pamiętaj, aby uwzględnić adresy IPv4 i IPv6 tam, gdzie ma to zastosowanie.
nslookup <IPs returned from the above commands>
Wszyscy powinni zwrócić
<hostname>.contoso.com
. Jeśli tak nie jest, sprawdź rekordy PTR (wskaźnik), które są tworzone w usłudze Active Directory.Może być konieczne współdziałanie z administratorem domeny w celu umożliwienia działania rDNS. Jeśli nie możesz dodać wpisów PTR dla wszystkich zwróconych adresów IP, możesz również ograniczyć program SQL Server do podzestawu kontrolerów domeny. Ta zmiana ma wpływ na wszelkie inne usługi korzystające z
krb5.conf
na hoście.Aby uzyskać więcej informacji na temat odwrotnego systemu DNS, zobacz Co to jest odwrotny system DNS?
Sprawdź plik keytab i uprawnienia
Sprawdź, czy utworzono plik keytab (key table) i że mssql-conf jest skonfigurowany do używania poprawnego pliku z odpowiednimi uprawnieniami. Keytab musi być dostępny dla konta użytkownika
mssql
. Aby uzyskać więcej informacji, zobacz Jak użyć adutil do konfiguracji uwierzytelniania Active Directory w SQL Server na Linux.Upewnij się, że możesz wyświetlić listę zawartości keytabu i że dodano poprawne SPN-y, port, typ szyfrowania i konto użytkownika. Jeśli podczas tworzenia nazw SPN i wpisów na karcie kluczy nie wpiszesz poprawnie haseł, podczas próby zalogowania się przy użyciu uwierzytelniania usługi Active Directory wystąpią błędy.
klist -kte /var/opt/mssql/secrets/mssql.keytab
Poniżej przedstawiono przykładowy działający keytab. W przykładzie użyto dwóch typów szyfrowania, ale można użyć tylko jednego lub kilku typów szyfrowania obsługiwanych w danym środowisku. W tym przykładzie
sqluser@CONTOSO.COM
to konto uprzywilejowane (zgodne z ustawieniemnetwork.privilegedadaccount
w mssql-conf), a nazwa hosta programu SQL Server tosqllinux.contoso.com
, który nasłuchuje na domyślnym porcie1433
.$ kinit privilegeduser@CONTOSO.COM Password for privilegeduser@CONTOSO.COM: $ klist Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: privilegeduser@CONTOSO.COM Valid starting Expires Service principal 01/26/22 20:42:02 01/27/22 06:42:02 krbtgt/CONTOSO.COM@CONTOSO.COM renew until 01/27/22 20:41:57 $ klist -kte mssql.keytab Keytab name: FILE:mssql.keytab KVNO Timestamp Principal ---- ----------------- -------------------------------------------------------- 2 01/13/22 13:19:47 MSSQLSvc/sqllinux@CONTOSO.COM (aes256-cts-hmac-sha1-96) 2 01/13/22 13:19:47 MSSQLSvc/sqllinux@CONTOSO.COM (aes128-cts-hmac-sha1-96) 2 01/13/22 13:19:47 MSSQLSvc/sqllinux.contoso.com@CONTOSO.COM (aes256-cts-hmac-sha1-96) 2 01/13/22 13:19:47 MSSQLSvc/sqllinux.contoso.com@CONTOSO.COM (aes128-cts-hmac-sha1-96) 2 01/13/22 13:19:47 MSSQLSvc/sqllinux:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 2 01/13/22 13:19:47 MSSQLSvc/sqllinux:1433@CONTOSO.COM (aes128-cts-hmac-sha1-96) 2 01/13/22 13:19:47 MSSQLSvc/sqllinux.contoso.com:5533@CONTOSO.COM (aes256-cts-hmac-sha1-96) 2 01/13/22 13:19:47 MSSQLSvc/sqllinux.contoso.com:5533@CONTOSO.COM (aes128-cts-hmac-sha1-96) 2 01/13/22 13:19:55 sqluser@CONTOSO.COM (aes256-cts-hmac-sha1-96) 2 01/13/22 13:19:55 sqluser@CONTOSO.COM (aes128-cts-hmac-sha1-96)
Zweryfikuj informacje o obszarze w krb5.conf
W
krb5.conf
(znajdującym się w/etc/krb5.conf
) sprawdź, czy podajesz wartości domyślnego obszaru, informacji o obszarze i domenie do mapowania obszaru. Poniższy przykład to przykładowy plikkrb5.conf
. Aby uzyskać więcej informacji, zobacz Omówienie uwierzytelniania usługi Active Directory dla programu SQL Server w systemie Linux i kontenerach.[libdefaults] default_realm = CONTOSO.COM default_keytab_name = /var/opt/mssql/secrets/mssql.keytab default_ccache_name = "" [realms] CONTOSO.COM = { kdc = adVM.contoso.com admin_server = adVM.contoso.com default_domain= contoso.com } [domain_realm] .contoso.com = CONTOSO.COM contoso.com = CONTOSO.COM
Można ograniczyć program SQL Server do kontaktu z podzbiorem kontrolerów domeny, co jest przydatne, jeśli konfiguracja DNS zwraca więcej kontrolerów domeny niż program SQL Server musi się skontaktować. Program SQL Server w systemie Linux umożliwia określenie listy kontrolerów domeny, z którymi program SQL Server kontaktuje się na zasadzie rotacyjnej podczas wyszukiwania za pomocą protokołu LDAP (Lightweight Directory Access Protocol).
Należy wykonać dwa kroki. Najpierw zmodyfikuj
krb5.conf
, dodając dowolną liczbę potrzebnych kontrolerów domeny z prefiksemkdc =
.[realms] CONTOSO.COM = { kdc = kdc1.contoso.com kdc = kdc2.contoso.com .. .. }
Należy pamiętać, że
krb5.conf
jest typowym plikiem konfiguracji klienta protokołu Kerberos, więc wszelkie zmiany wprowadzone w tym pliku mają wpływ na inne usługi oprócz programu SQL Server. Przed wprowadzeniem jakichkolwiek zmian skontaktuj się z administratorem domeny.Następnie można włączyć ustawienie
network.enablekdcfromkrb5conf
przy użyciu mssql-conf, a następnie ponownie uruchomić program SQL Server:sudo /opt/mssql/bin/mssql-conf set network.enablekdcfromkrb5conf true sudo systemctl restart mssql-server
Rozwiązywanie problemów z protokołem Kerberos
Zapoznaj się z poniższymi szczegółami, aby pomóc w rozwiązywaniu problemów z uwierzytelnianiem w usłudze Active Directory i identyfikowaniu określonych komunikatów o błędach.
Śledź Kerberos
Po utworzeniu użytkownika, SPN i kluczy keytab oraz skonfigurowaniu mssql-conf w celu upewnienia się, że konfiguracja usługi Active Directory dla programu SQL Server w systemie Linux jest poprawna, można wyświetlić komunikaty śledzenia protokołu Kerberos w konsoli (stdout
) podczas próby uzyskania lub odnowienia biletu TGT protokołu Kerberos przy użyciu uprzywilejowanego konta, za pomocą następującego polecenia:
root@sqllinux mssql# KRB5_TRACE=/dev/stdout kinit -kt /var/opt/mssql/secrets/mssql.keytab sqluser
Jeśli nie ma żadnych problemów, powinny zostać wyświetlone dane wyjściowe podobne do poniższego przykładu. Jeśli nie, ślad zawiera kontekst kroków, które należy przejrzeć.
3791545 1640722276.100275: Getting initial credentials for sqluser@CONTOSO.COM
3791545 1640722276.100276: Looked up etypes in keytab: aes256-cts, aes128-cts
3791545 1640722276.100278: Sending unauthenticated request
3791545 1640722276.100279: Sending request (202 bytes) to CONTOSO.COM
3791545 1640722276.100280: Initiating TCP connection to stream 10.0.0.4:88
3791545 1640722276.100281: Sending TCP request to stream 10.0.0.4:88
3791545 1640722276.100282: Received answer (185 bytes) from stream 10.0.0.4:88
3791545 1640722276.100283: Terminating TCP connection to stream 10.0.0.4:88
3791545 1640722276.100284: Response was from master KDC
3791545 1640722276.100285: Received error from KDC: -1765328359/Additional pre-authentication required
3791545 1640722276.100288: Preauthenticating using KDC method data
3791545 1640722276.100289: Processing preauth types: PA-PK-AS-REQ (16), PA-PK-AS-REP_OLD (15), PA-ETYPE-INFO2 (19), PA-ENC-TIMESTAMP (2)
3791545 1640722276.100290: Selected etype info: etype aes256-cts, salt "CONTOSO.COMsqluser", params ""
3791545 1640722276.100291: Retrieving sqluser@CONTOSO.COM from /var/opt/mssql/secrets/mssql.keytab (vno 0, enctype aes256-cts) with result: 0/Success
3791545 1640722276.100292: AS key obtained for encrypted timestamp: aes256-cts/E84B
3791545 1640722276.100294: Encrypted timestamp (for 1640722276.700930): plain 301AA011180F32303231313XXXXXXXXXXXXXXXXXXXXXXXXXXXXX, encrypted 333109B95898D1B4FC1837DAE3E4CBD33AF8XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
3791545 1640722276.100295: Preauth module encrypted_timestamp (2) (real) returned: 0/Success
3791545 1640722276.100296: Produced preauth for next request: PA-ENC-TIMESTAMP (2)
3791545 1640722276.100297: Sending request (282 bytes) to CONTOSO.COM
3791545 1640722276.100298: Initiating TCP connection to stream 10.0.0.4:88
3791545 1640722276.100299: Sending TCP request to stream 10.0.0.4:88
3791545 1640722276.100300: Received answer (1604 bytes) from stream 10.0.0.4:88
3791545 1640722276.100301: Terminating TCP connection to stream 10.0.0.4:88
3791545 1640722276.100302: Response was from master KDC
3791545 1640722276.100303: Processing preauth types: PA-ETYPE-INFO2 (19)
3791545 1640722276.100304: Selected etype info: etype aes256-cts, salt "CONTOSO.COMsqluser", params ""
3791545 1640722276.100305: Produced preauth for next request: (empty)
3791545 1640722276.100306: AS key determined by preauth: aes256-cts/E84B
3791545 1640722276.100307: Decrypted AS reply; session key is: aes256-cts/05C0
3791545 1640722276.100308: FAST negotiation: unavailable
3791545 1640722276.100309: Initializing KCM:0:37337 with default princ sqluser@CONTOSO.COM
3791545 1640722276.100310: Storing sqluser@CONTOSO.COM -> krbtgt/CONTOSO.COM@CONTOSO.COM in KCM:0:37337
3791545 1640722276.100311: Storing config in KCM:0:37337 for krbtgt/CONTOSO.COM@CONTOSO.COM: pa_type: 2
3791545 1640722276.100312: Storing sqluser@CONTOSO.COM -> krb5_ccache_conf_data/pa_type/krbtgt/CONTOSO.COM@CONTOSO.COM@X-CACHECONF: in KCM:0:37337
$ sudo klist
Ticket cache: KCM:0:37337
Default principal: sqluser@CONTOSO.COM
Valid starting Expires Service principal
12/28/2021 20:11:16 12/29/2021 06:11:16 krbtgt/CONTOSO.COM@CONTOSO.COM
renew until 01/04/2022 20:11:16
Włącz rejestrowanie protokołu Kerberos i rejestrowanie PAL oparte na zabezpieczeniach.
Możesz włączyć rejestrowanie security.kerberos
i security.ldap
, aby zidentyfikować określone komunikaty o błędach w warstwie PAL (warstwa abstrakcji platformy). Utwórz plik logger.ini
z następującą zawartością w /var/opt/mssql/
, uruchom ponownie program SQL Server, a następnie odtwórz błąd. Komunikaty błędów i debugowania usługi Active Directory PAL są rejestrowane w /var/opt/mssql/log/security.log
.
[Output:security]
Type = File
Filename = /var/opt/mssql/log/security.log
[Logger]
Level = Silent
[Logger:security.kerberos]
Level = Debug
Outputs = security
[Logger:security.ldap]
Level = debug
Outputs = security
Nie musisz ponownie uruchamiać programu SQL Server, aby zmiany rejestratora zostały pobrane z logger.ini
, ale błędy mogą wystąpić podczas inicjowania usługi Active Directory podczas uruchamiania programu SQL Server, które w przeciwnym razie byłyby niezauważone. Ponowne uruchomienie programu SQL Server gwarantuje przechwycenie wszystkich komunikatów o błędach.
Dziennik zabezpieczeń będzie nadal zapisywany na dysku, dopóki nie usuniesz zmian w logger.ini
. Pamiętaj, aby wyłączyć rejestrowanie security.kerberos
i security.ldap
po zidentyfikowaniu i rozwiązaniu problemu, aby zapobiec wyczerpaniu miejsca na dysku.
Rejestrator PAL generuje pliki dziennika w następującym formacie:
<DATETIME> <Log level> [<logger>] <<process/thread identifier>> <message>
Na przykład przykładowy wiersz z dziennika jest następujący:
12/28/2021 13:56:31.609453055 Error [security.kerberos] <0003753757/0x00000324> Request ticket server MSSQLSvc/sql.contoso.com:1433@CONTOSO.COM kvno 3 enctype aes256-cts found in keytab but cannot decrypt ticket
Po włączeniu rejestrowania PAL i odtworzeniu problemu poszukaj pierwszego komunikatu z poziomem dziennika Error
, a następnie skorzystaj z poniższej tabeli, aby znaleźć błąd i postępować zgodnie ze wskazówkami i zaleceniami, aby zidentyfikować i rozwiązać problem.
Typowe komunikaty o błędach
Komunikat o błędzie: "Logowanie nie powiodło się. Identyfikator logowania pochodzi z niezaufanej domeny i nie można go używać z uwierzytelnianiem zintegrowanym".
Możliwa przyczyna
Ten błąd występuje podczas próby zalogowania się przy użyciu konta usługi Active Directory po skonfigurowaniu uwierzytelniania usługi Active Directory.
Wskazówki
Ten ogólny komunikat o błędzie wymaga aby włączyć rejestrowanie PAL w celu zidentyfikowania określonego błędu.
Zapoznaj się z poniższą listą typowych błędów, aby zidentyfikować możliwą przyczynę każdego błędu, a następnie postępuj zgodnie ze wskazówkami dotyczącymi rozwiązywania problemów, aby rozwiązać ten problem.
Komunikat o błędzie: Nie znaleziono użytkownika lub grupy systemu Windows NT "CONTOSO\user"
Możliwa przyczyna
Ten błąd może wystąpić podczas próby utworzenia logowania systemu Windows lub podczas odświeżania grupy .
Wytyczne
Aby zweryfikować problem, postępuj zgodnie ze wskazówkami opisanymi w artykule "Logowanie nie powiodło się. Identyfikator logowania pochodzi z niezaufanej domeny i nie można go używać z uwierzytelnianiem zintegrowanym. (Microsoft SQL Server, Błąd: 18452)" włączyć logowanie PAL w celu zidentyfikowania określonego błędu i podjęcia odpowiednich kroków w rozwiązywaniu problemów.
Komunikat o błędzie: "Nie można wyszukać krótkiej nazwy domeny z powodu błędu"
Możliwa przyczyna
Składnia Transact-SQL do utworzenia logowania do usługi Active Directory to:
CREATE LOGIN [CONTOSO\user]
FROM WINDOWS;
Nazwa NetBIOS (CONTOSO
) jest wymagana w poleceniu, ale w zapleczu podczas wykonywania połączenia LDAP należy podać nazwę FQDN domeny (contoso.com
). Aby wykonać tę konwersję, wykonywane jest wyszukiwanie DNS na CONTOSO
, aby rozpoznać adres IP kontrolera domeny, który następnie może być użyty do zapytań LDAP.
Wytyczne
Komunikat o błędzie "Nie można wyszukać krótkiej nazwy domeny z powodu błędu" sugeruje, że nslookup
dla contoso
nie rozpoznaje adresu IP kontrolera domeny. Należy przejrzeć wyszukiwania DNS i wsteczne wyszukiwania DNS, aby potwierdzić, że nslookup
zarówno dla NetBIOS, jak i dla nazwy domeny powinny być zgodne.
Komunikaty o błędach: "Nie można wykonać wyszukiwania rDNS dla hosta <nazwa hosta> z powodu błędu" lub "Nazwa FQDN nie jest zwracana przez wyszukiwanie rDNS"
Możliwa przyczyna
Ten komunikat o błędzie zwykle wskazuje, że odwrotne rekordy DNS (rekordy PTR) nie istnieją dla wszystkich kontrolerów domeny.
Wskazówki
Sprawdź dns i wsteczne wyszukiwania DNS. Po zidentyfikowaniu kontrolerów domeny, które nie mają wpisów rDNS, istnieją dwie opcje:
Dodaj wpisy rDNS dla wszystkich kontrolerów domeny
To ustawienie nie jest ustawieniem programu SQL Server i musi być skonfigurowane na poziomie domeny. Może być konieczne współdziałanie z zespołem administracyjnym domeny w celu utworzenia wymaganych rekordów PTR dla wszystkich kontrolerów domeny zwracanych podczas uruchamiania
nslookup
w nazwie domeny.ogranicz program SQL Server do podzbioru kontrolerów domeny
Jeśli dodanie rekordów PTR nie jest możliwe dla wszystkich zwracanych kontrolerów domeny, można ograniczyć program SQL Server do podzestawu kontrolerów domeny.
Komunikat o błędzie: "Nie można powiązać z serwerem LDAP ldap://CONTOSO.COM:3268: Błąd lokalny"
Możliwa przyczyna
Ten ogólny błąd z openLDAP zwykle oznacza jedną z dwóch rzeczy:
- Brak poświadczeń
- Problemy z siecią rDNS
Oto jeden z takich przykładów komunikatu o błędzie:
12/09/2021 14:32:11.319933684 Error [security.ldap] <0000000142/0x000001c0> Failed to bind to LDAP server ldap://[CONTOSO.COM:3268]: Local error
Wskazówki
Brak poświadczeń
Inne komunikaty o błędach wyświetlają się jako pierwsze, jeśli poświadczenia nie są ładowane dla połączeń LDAP. Należy włączyć rejestrowanie PAL i sprawdzić dziennik błędów pod kątem komunikatów o błędach przed tym komunikatem. Jeśli nie ma żadnych innych błędów, najprawdopodobniej nie występuje problem z poświadczeniami. Jeśli jeden z nich zostanie znaleziony, wykonaj pracę nad naprawieniem wyświetlanego komunikatu o błędzie. W większości przypadków jest to jeden z komunikatów o błędach opisanych w tym artykule.
problemy z siecią rDNS
Sprawdź dns i wsteczne wyszukiwania DNS.
Gdy biblioteka OpenLDAP łączy się z kontrolerem domeny, podawana jest albo w pełni kwalifikowana nazwa domeny (FQDN), która w tym przykładzie to
contoso.com
, albo nazwa FQDN kontrolera domeny (kdc1.contoso.com
). Po nawiązaniu połączenia (ale przed zwróceniem powodzenia do obiektu wywołującego) biblioteka OpenLDAP sprawdza adres IP serwera, z który nawiązał połączenie. Następnie wykonuje wsteczne wyszukiwanie DNS i sprawdza, czy nazwa serwera połączonego z (kdc1.contoso.com
) jest zgodna z domeną, dla którego zażądano połączenia (contoso.com
). Jeśli nie jest ona zgodna, biblioteka OpenLDAP zakończy połączenie jako funkcja zabezpieczeń. Jest to część tego, dlaczego ustawienia rDNS są tak ważne dla programu SQL Server w systemie Linux i są przedmiotem tego artykułu.
Komunikat o błędzie: "Nie znaleziono wpisu w tabeli z kluczami"
Możliwa przyczyna
Ten błąd wskazuje na problemy z dostępem do pliku keytab lub brak wszystkich wymaganych wpisów w tym pliku.
Wskazówki
Upewnij się, że plik keytab ma prawidłowy poziom dostępu i uprawnienia. Domyślna lokalizacja i nazwa pliku keytab to /var/opt/mssql/secrets/mssql.keytab
. Aby wyświetlić bieżące uprawnienia dla wszystkich plików w folderze wpisy tajne, możesz uruchomić następujące polecenie:
sudo ls -lrt /var/opt/mssql/secrets
Możesz użyć tych poleceń, aby ustawić uprawnienia i poziom dostępu dla pliku keytab.
sudo chown mssql /var/opt/mssql/secrets/mssql.keytab
sudo chmod 440 /var/opt/mssql/secrets/mssql.keytab
Aby uzyskać więcej informacji na temat wyświetlania wpisów w pliku keytab i ustawiania odpowiednich uprawnień, zobacz poprzednią sekcję Sprawdź plik keytab i uprawnienia. Jeśli którykolwiek z warunków w tej sekcji nie zostanie spełniony, zostanie wyświetlony następujący lub równoważny błąd: "Key table entry not found"
.
Komunikat o błędzie: "Nie znaleziono wpisu w tabeli kluczy dla głównego podmiotu <>"
Możliwa przyczyna
Podczas próby pobrania poświadczeń <principal>
z keytabu nie znaleziono stosownych wpisów.
Wytyczne
Aby wyświetlić listę wszystkich wpisów w pliku keytab, zobacz sekcję Sprawdź plik keytab i uprawnienia tego artykułu. Upewnij się, że <principal>
jest obecny. W takim przypadku głównym kontem jest zazwyczaj network.privilegedadaccount
, na którym są zarejestrowane SPN-y. Jeśli tak nie jest, dodaj go przy użyciu polecenia adutil. Aby uzyskać więcej informacji, zobacz Użyj adutil do skonfigurowania uwierzytelniania Active Directory z SQL Server na Linuxie.
Komunikat o błędzie: "Bilet żądania serwera <główna nazwa> nie został znaleziony w karcie kluczy (bilet kvno <KVNO>)"
Możliwa przyczyna
Ten błąd wskazuje, że program SQL Server nie może znaleźć wpisu keytab dla żądanego ticketu z określonym numerem wersji klucza (KVNO).
Wskazówki
Aby wyświetlić listę wszystkich wpisów w pliku keytab, zapoznaj się z sekcją Sprawdź plik keytab i uprawnienia tego artykułu. Jeśli nie możesz znaleźć komunikatu o błędzie zgodnego z <principal>
i KVNO, dodaj ten wpis, aktualizując plik keytab, wykonując kroki opisane w tej sekcji.
Możesz również uruchomić następujące polecenie, aby uzyskać najnowszy numer KVNO z kontrolera domeny. Przed uruchomieniem tego polecenia należy uzyskać lub odnowić bilet TGT protokołu Kerberos, używając polecenia kinit. Aby uzyskać więcej informacji, zobacz , jak użyć adutil do utworzenia użytkownika Active Directory dla SQL Server i ustawienia nazwy głównej usługi (SPN).
kvno MSSQLSvc/<hostname>
Komunikat o błędzie: "Żądanie serwera biletów <podmiotu zabezpieczeń> kvno <KVNO> znalezione w keytab, ale nie z typem szyfrowania <typu szyfrowania>"
Możliwa przyczyna
Ten błąd oznacza, że typ szyfrowania żądany przez klienta nie był obecny na karcie kluczy programu SQL Server.
Wskazówki
Aby zweryfikować, wykonaj polecenia z sekcji Sprawdź plik keytab i uprawnienia tego dokumentu, aby wyświetlić wszystkie wpisy w pliku keytab. Jeśli nie możesz znaleźć komunikatu o błędzie, który pasuje do principal, KVNO i typu szyfrowania, dodaj ten wpis, aktualizując plik keytab zgodnie z krokami wymienionymi w tej sekcji.
Komunikat o błędzie: "Serwer biletów <, podmiot>, kvno <, KVNO>, typ szyfrowania <, typ szyfrowania> znaleziony w keytab, ale nie można odszyfrować biletu"
Możliwa przyczyna
Ten błąd wskazuje, że program SQL Server nie może użyć poświadczeń z pliku keytab do odszyfrowania przychodzącego żądania uwierzytelniania. Błąd jest często wynikiem nieprawidłowego hasła.
Wskazówki
Odtwórz keytab przy użyciu poprawnego hasła. Jeśli używasz adutil, utwórz plik keytab z prawidłowym hasłem, postępując zgodnie z krokami opisanymi w Samouczek: Konfigurowanie uwierzytelniania Active Directory za pomocą SQL Server w systemie Linux.
Typowe porty
W tej tabeli przedstawiono typowe porty używane przez program SQL Server w systemie Linux do konfigurowania i administrowania uwierzytelnianiem usługi Active Directory.
Usługa Active Directory | Port |
---|---|
DNS | 53 |
LDAP | 389 |
LDAPS | 636 |
Kerberos | 88 |