Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:Program SQL Server w systemie Linux
Ten artykuł zawiera ogólne wskazówki, jak dołączyć hosta Linuksa działającego na SQL Server do domeny Active Directory. Istnieją dwie metody: użyj wbudowanego pakietu SSSD lub użyj dostawców usługi Active Directory innych firm. Przykładami produktów do łączenia domen firm trzecich są PowerBroker Identity Services (PBIS),One Identity Safeguard Authentication Services (VAS) oraz Centrify.
Ten przewodnik zawiera kroki umożliwiające sprawdzenie konfiguracji usługi Active Directory. Nie jest to jednak przeznaczone do udostępniania instrukcji dotyczących dołączania maszyny do domeny podczas korzystania z narzędzi innych firm.
Note
Aby uzyskać informacje na temat konfigurowania usługi Active Directory z nowszymi wersjami systemu Ubuntu, RHEL lub SLES, zobacz Samouczek: użycie adutil do konfigurowania uwierzytelniania usługi Active Directory z SQL Server w systemie Linux.
Wymagania wstępne
Zanim skonfigurujesz uwierzytelnianie Active Directory, musisz skonfigurować komputer z Windows Server jako kontroler domeny Active Directory w swojej sieci. Następnie dołącz hosta Linuksa działającego na SQL Server do domeny Active Directory.
Przykładowe kroki opisane w tym artykule są przeznaczone wyłącznie do celów orientacyjnych i odnoszą się do systemów operacyjnych Ubuntu 16.04, Red Hat Enterprise Linux (RHEL) 7.x oraz SUSE Linux Enterprise Server (SLES) 12. Rzeczywiste kroki mogą się nieco różnić w zależności od środowiska i wersji systemu operacyjnego. Na przykład Ubuntu 18.04 używa netplan , podczas gdy RHEL 8.x korzysta z nmcli i innych narzędzi do zarządzania i konfiguracji sieci. Należy zaangażować administratorów systemu i domeny w środowisku w celu uzyskania określonych narzędzi, konfiguracji, dostosowywania i wszelkich wymaganych rozwiązań.
Note
Począwszy od SQL Server 2025 (17.x), system SUSE Linux Enterprise Server (SLES) nie jest obsługiwany.
Odwrotny DNS (rDNS)
Podczas konfigurowania komputera z systemem Windows Server jako kontrolera domeny może nie być domyślnie skonfigurowana strefa rDNS. Upewnij się, że istnieje odpowiednia strefa rDNS zarówno dla kontrolera domeny, jak i adresu IP maszyny z systemem Linux, na którym będzie uruchomiony program SQL Server.
Upewnij się też, że istnieją rekordy PTR wskazujące na twoje kontrolery domeny.
Sprawdzanie połączenia z kontrolerem domeny
Sprawdź, czy możesz skontaktować się z kontrolerem domeny przy użyciu krótkich i w pełni kwalifikowanych nazw domeny oraz przy użyciu nazwy hosta kontrolera domeny. Adres IP kontrolera domeny powinien również rozwiązywać się do w pełni kwalifikowanej nazwy domenowej (FQDN) kontrolera domeny:
ping contoso
ping contoso.com
ping dc1.contoso.com
nslookup <IP address of dc1.contoso.com>
Wskazówka
W tym samouczku użyto contoso.com jako przykładowej nazwy domeny, a CONTOSO.COM jako przykładowej nazwy obszaru. Używa również DC1.CONTOSO.COM jako przykładowej w pełni kwalifikowanej nazwy domeny kontrolera domeny. Należy zastąpić te nazwy własnymi wartościami.
Aby zapewnić prawidłowe rozpoznawanie nazw domen, należy zaktualizować plik /etc/resolv.conf, jeśli podczas sprawdzania nazw zostaną znalezione jakiekolwiek rozbieżności. Procedura aktualizacji różni się w różnych dystrybucjach; dlatego zaleca się zapoznanie się z oficjalną dokumentacją w celu uzyskania dokładnych wskazówek. Poniższa lista zawiera linki do niektórych dystrybucji i ich kluczowych wersji:
| Distribution | Artykuł referencyjny |
|---|---|
| RHEL 8 | Ręczne konfigurowanie /etc/resolv.conf |
| RHEL 9 | Ręczne konfigurowanie /etc/resolv.conf |
| SLES 15 | Ustawienia NETCONFIG_DNS_STATIC_SEARCHLIST i NETCONFIG_DNS_STATIC_SERVERS |
| Ubuntu | Sekcja rozpoznawania nazw |
Celem jest skonfigurowanie /etc/resolv.conf poprawnie dla twojej dystrybucji, aby ułatwić rozpoznawanie nazw domen. Jeśli na przykład Twoja domena to contoso.com, a adres IP usługi Active Directory wynosi 10.0.0.4, należy odpowiednio skonfigurować element /etc/resolv.conf, aby zapewnić pomyślne rozpoznawanie nazw z hosta.
cat /etc/resolv.conf
Oto zestaw wyników.
# Generated by NetworkManager
search contoso.com com
nameserver 10.0.0.4
RHEL 7.x
Zmodyfikuj plik
/etc/sysconfig/network-scripts/ifcfg-eth0, aby domena usługi Active Directory znajduje się na liście wyszukiwania domen. Możesz też edytować inny plik konfiguracji interfejsu zgodnie z potrzebami:sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0Dane wyjściowe wyglądają podobnie do następującego przykładu:
PEERDNS=no DNS1=<Domain controller IP address> DOMAIN="contoso.com com"Po edycji tego pliku uruchom ponownie usługę sieciową:
sudo systemctl restart networkTeraz sprawdź, czy plik
/etc/resolv.confzawiera wiersz podobny do następującego przykładu:sudo vi /etc/resolv.confDane wyjściowe wyglądają podobnie do następującego przykładu:
search contoso.com com nameserver <Domain controller IP address>Jeśli nadal nie możesz wysłać polecenia ping do kontrolera domeny, znajdź w pełni kwalifikowaną nazwę domeny i adres IP kontrolera domeny. Przykładowa nazwa domeny to
DC1.CONTOSO.COM. Dodaj następujący wpis do/etc/hosts:sudo vi /etc/hostsDane wyjściowe wyglądają podobnie do następującego przykładu:
<IP address> DC1.CONTOSO.COM CONTOSO.COM CONTOSO
Dołączanie do domeny usługi Active Directory
Po weryfikacji podstawowej konfiguracji i łączności z kontrolerem domeny istnieją dwie opcje dołączenia do hosta Linuksa działającego na SQL Server do domeny Active Directory:
Opcja 1. Dołączanie do domeny usługi Active Directory przy użyciu pakietu SSSD
Ta metoda łączy hosta Linuksa działającego na SQL Server z domeną Active Directory za pomocą pakietów realmd i sssd.
Jest to preferowana metoda dołączania hosta systemu Linux do kontrolera domeny usługi Active Directory.
Aby uzyskać najbardziej aktualne instrukcje, zapoznaj się z oficjalną dokumentacją dostarczoną przez partnerów dystrybucyjnych.
Użyj następujących kroków, aby dołączyć hosta Linuksa działającego na SQL Server z domeną Active Directory:
Użyj realmd, aby połączyć swój komputer z domeną Active Directory. Najpierw musisz zainstalować zarówno pakiety klienckie realmd, jak i Kerberos na hostie SQL Server Linux, korzystając z menedżera pakietów w twojej dystrybucji Linuksa:
Jeśli instalacja pakietu klienta Kerberos wyświetli monit o podanie nazwy obszaru, wprowadź nazwę domeny w wielkich literach.
Po potwierdzeniu, że system DNS jest poprawnie skonfigurowany, dołącz do domeny, uruchamiając następujące polecenie. Musisz uwierzytelnić się przy użyciu konta usługi Active Directory, które ma wystarczające uprawnienia w usłudze Active Directory, aby dołączyć nową maszynę do domeny. To polecenie tworzy nowe konto komputera w Active Directory, tworzy plik klucza hosta
/etc/krb5.keytab, konfiguruje domenę w/etc/sssd/sssd.confi aktualizuje/etc/krb5.conf.Ze względu na problem z realmd, ustaw najpierw nazwę hosta komputera na FQDN zamiast na nazwę komputera. W przeciwnym razie realmd może nie utworzyć wszystkich wymaganych głównych nazw użytkowników usługi (SPN) dla maszyny oraz wpisy DNS nie zostaną automatycznie zaktualizowane, nawet jeśli kontroler domeny obsługuje dynamiczne aktualizacje DNS.
sudo hostname <old hostname>.contoso.comPo uruchomieniu tego polecenia plik
/etc/hostnamepowinien zawierać<old hostname>.contoso.com.sudo realm join contoso.com -U 'user@CONTOSO.COM' -vPowinieneś zobaczyć komunikat
Successfully enrolled machine in realm.W poniższej tabeli wymieniono niektóre komunikaty o błędach, które można otrzymywać, i sugestie dotyczące ich rozwiązywania:
Komunikat o błędzie Zalecenie Necessary packages are not installedZainstaluj te pakiety za pomocą menedżera pakietów swojej dystrybucji systemu Linux przed ponownym uruchomieniem polecenia realm join. Insufficient permissions to join the domainSprawdź, czy administrator domeny ma wystarczające uprawnienia, aby dołączyć maszyny z systemem Linux do domeny. KDC reply did not match expectationsByć może nie określono poprawnej nazwy obszaru dla użytkownika. Nazwy realmów rozróżniają wielkość liter, są zwykle pisane wielkimi literami i można je zidentyfikować za pomocą polecenia realm discover contoso.com.Program SQL Server używa SSSD i NSS do mapowania kont użytkowników i grup na identyfikatory zabezpieczeń (SID). Aby SQL Server pomyślnie utworzył loginy Active Directory, SSSD musi być skonfigurowany i uruchomiony. realmd zazwyczaj wykonuje to automatycznie jako część dołączania do domeny, ale w niektórych przypadkach musisz zrobić to osobno.
Aby uzyskać więcej informacji, zobacz jak ręcznie skonfigurować usługę SSSDi skonfigurować NSS do pracy z usługą SSSD.
Sprawdź, czy możesz teraz zbierać informacje o użytkowniku z domeny oraz czy możesz uzyskać bilet Kerberos jako ten użytkownik. W poniższym przykładzie użyto poleceń id, kiniti klist.
Użyj
id, aby potwierdzić, że SSSD może określić użytkownika domenowego i jego przynależność do grup:id user@contoso.comWynik powinien pokazywać identyfikator użytkownika domeny, identyfikator grupy oraz członkostwa w grupie:
uid=1348601103(user@contoso.com) gid=1348600513(domain group@contoso.com) groups=1348600513(domain group@contoso.com)Zastosowanie
kinitdo żądania zgłoszenia Kerberos dla użytkownika domeny:kinit user@CONTOSO.COMPolecenie powinno wywołać hasło użytkownika domeny:
Password for user@CONTOSO.COM:Zastosowanie
klistdo weryfikacji biletu Kerberos:klistWynik powinien identyfikować użytkownika domeny jako domyślnego principalnego:
Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: user@CONTOSO.COMJeśli
id user@contoso.comzwróciNo such user, upewnij się, że usługa SSSD została uruchomiona pomyślnie, uruchamiając poleceniesudo systemctl status sssd. Jeśli usługa jest uruchomiona i nadal widzisz błąd, spróbuj włączyć szczegółowe logowanie w SSSD. Aby uzyskać więcej informacji, zobacz dokumentację oprogramowania Red Hat dotyczącą rozwiązywania problemów z usługą SSSD.Jeśli
kinit user@CONTOSO.COMzwracaKDC reply didn't match expectations while getting initial credentials, upewnij się, że obszar jest określony dużymi literami.
Więcej informacji można znaleźć w dokumentacji Red Hat dotyczącej odkrywania i dołączania do domeny AD za pomocą SSSD.
Opcja 2: Użyj narzędzi dostawców Active Directory firm trzecich
Można użyć narzędzi innych firm, takich jak PBIS, VASlub Centrify. W tym artykule nie opisano kroków poszczególnych narzędzi. Najpierw musisz użyć jednego z tych narzędzi, aby połączyć hosta Linuksa działającego na SQL Server z domeną, zanim będziesz kontynuować.
SQL Server nie używa kodu ani bibliotek od zewnętrznych integratorów do zapytań związanych z Active Directory. Program SQL Server zawsze wysyła zapytania do usługi Active Directory przy użyciu biblioteki OpenLDAP bezpośrednio w tej konfiguracji. Integratorzy firm trzecich służą jedynie do łączenia hosta Linuksa z domeną Active Directory, a SQL Server nie ma bezpośredniej komunikacji z tymi narzędziami.
Ważna
Zapoznaj się z zaleceniami dotyczącymi używania opcji konfiguracji mssql-conf network.disablesssd w sekcji Dodatkowe opcje konfiguracji artykułu Używanie uwierzytelniania usługi Active Directory z programem SQL Server w systemie Linux.
Sprawdź, czy /etc/krb5.conf jest poprawnie skonfigurowany. W przypadku większości dostawców usługi Active Directory innych firm ta konfiguracja jest wykonywana automatycznie. Sprawdź jednak /etc/krb5.conf dla następujących wartości, aby zapobiec wszelkim przyszłym problemom:
sudo vi /etc/krb5.conf
Dane wyjściowe wyglądają podobnie do następującego przykładu:
[libdefaults]
default_realm = CONTOSO.COM
[realms]
CONTOSO.COM = {
}
[domain_realm]
contoso.com = CONTOSO.COM
.contoso.com = CONTOSO.COM
Sprawdź, czy odwrotny system DNS jest prawidłowo skonfigurowany
Następujące polecenie powinno zwrócić w pełni kwalifikowaną nazwę domeny (FQDN) hosta z uruchomionym programem SQL Server. Przykładem jest SqlHost.contoso.com.
host <IP address of SQL Server host>
Dane wyjściowe tego polecenia powinny być podobne do <reversed IP address>.in-addr.arpa domain name pointer SqlHost.contoso.com. Jeśli to polecenie nie zwraca FQDN twojego hosta lub jeśli FQDN jest błędne, dodaj odwrotny wpis DNS dla hosta Linuksa, który uruchamia SQL Server, na serwerze DNS.
Następny krok
W tym artykule skonfigurowałeś hosta Linuksa, który działa na SQL Server z uwierzytelnianiem Active Directory. Aby zakończyć konfigurowanie programu SQL Server w systemie Linux w celu obsługi kont usługi Active Directory, postępuj zgodnie z tymi instrukcjami.