Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server i Linux
I den här självstudien beskrivs hur du konfigurerar Windows služba Active Directory-autentisering för SQL Server i Linux med adutil. En annan metod för att konfigurera služba Active Directory-autentisering med ktpass finns i Självstudie: Använda služba Active Directory-autentisering med SQL Server i Linux.
Den här självstudien består av följande uppgifter:
- Installera
adutil - Ansluta Linux-datorn till din služba Active Directory-domän
- Skapa en služba Active Directory användare för SQL Server och ange tjänstens huvudnamn (SPN) med hjälp av
adutil - Skapa SQL Server-tjänstens nyckelflik (nyckeltabell)
- Konfigurera SQL Server för att använda nyckelfliksfilen
- Skapa služba Active Directory-baserade SQL Server-inloggningar med hjälp av Transact-SQL
- Ansluta till SQL Server med Hjälp av služba Active Directory-autentisering
Förutsättningar
Innan du konfigurerar služba Active Directory-autentisering behöver du:
- En Windows-domänkontrollant som kör Doménové služby Active Directory i nätverket.
- Verktyget
adutilsom är installerat på en domänansluten värddator.
Förberedelse av domändator
Kontrollera att en vidarebefordringspost för värd (A) har lagts till i služba Active Directory för IP-adressen till Linux-värden. I den här självstudien är IP-adressen för värddatorn sql110.0.0.10. Vi lägger till posten vidarebefordrande värd i služba Active Directory i följande exempel. Inmatningen ser till att när användare ansluter till sql1.contoso.com, så når de rätt värd.
I den här självstudien använder du en miljö i Azure med tre virtuella datorer. En virtuell dator (VM) är en Windows Server-dator med namnet adVM.contoso.com, som körs som domänkontrollant (DC) med domännamnet contoso.com. Den andra virtuella datorn är en klientdator som kör Windows 10 med namnet winbox, som har SQL Server Management Studio (SSMS) installerat. Den tredje datorn är en Ubuntu 18.04 LTS-dator med namnet sql1, som är värd för SQL Server.
Ansluta Linux-värddatorn till din služba Active Directory-domän
Information om hur du ansluter sql1 till služba Active Directory-domänen finns i Ansluta SQL Server på en Linux-värd till en služba Active Directory-domän.
Installera adutil
Om du vill installera adutil följer du stegen i artikeln Introduction to adutil – služba Active Directory utility på värddatorn som du lade till i domänen i föregående steg.
Använd adutil för att skapa en služba Active Directory-användare för SQL Server och ange tjänstens huvudnamn (SPN)
Hämta eller förnya Kerberos TGT (biljettbeviljande biljett) med hjälp av kommandot
kinit. Du måste använda ett privilegierat konto förkinitkommandot och värddatorn bör redan vara en del av domänen. Kontot behöver behörighet att ansluta till domänen och skapa konton och SPN:er i domänen.I det här exempelskriptet skapas redan en privilegierad användare med namnet
privilegeduser@CONTOSO.COMpå domänkontrollanten.kinit privilegeduser@CONTOSO.COMAnvänd
adutiloch skapa den nya användaren som ska användas som privilegierat služba Active Directory konto av SQL Server.Lösenord kan anges på tre olika sätt. Om du använder mer än en av dessa metoder har de företräde i följande ordning:
- Använda lösenordsflaggan:
--password <password> - I en miljövariabel:
ADUTIL_ACCOUNT_PWD - Interaktiva indata i en kommandotolk
Miljövariabeln eller interaktiva indatametoder är säkrare än lösenordsflaggan.
adutil user create --name sqluser --distname CN=sqluser,CN=Users,DC=CONTOSO,DC=COM --password '<password>'Du kan ange namnet på kontot med det unika namnet (
--distname) som visat tidigare, eller använda organisationsenhetens (OU) namn. Organisationsenhetens namn (--ou) har företräde framför unikt namn om du anger båda. Du kan köra följande kommando för mer information:adutil user create --helpFörsiktighet
Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt.
- Använda lösenordsflaggan:
Registrera SPN för den huvudanvändare som skapades tidigare. Du måste använda datorns fullständigt kvalificerade domännamn (FQDN). I den här självstudien använder vi SQL Server-standardporten 1433. Portnumret kan vara annorlunda.
adutil spn addauto -n sqluser -s MSSQLSvc -H sql1.contoso.com -p 1433-
addautoskapar SPN:erna automatiskt, så länge det finns tillräckliga privilegier förkinitkontot. -
-n: Namnet på kontot för att tilldela SPN:erna. -
-s: Tjänstnamnet som ska användas för att generera SPN. I det här fallet är det för SQL Server-tjänsten, vilket är anledningen till att tjänstnamnet ärMSSQLSvc. -
-H: Värdnamnet som ska användas för att generera SPN. Om det inte anges används datorns FQDN. I det här fallet ärsql1värdnamnet och FQDN ärsql1.contoso.com. -
-p: Porten som ska användas för att generera SPN. Om det inte anges genereras SPN utan port. SQL-anslutningar fungerar bara i det här fallet när SQL Server-instansen lyssnar på standardporten 1433.
-
Skapa nyckelfliksfilen för SQL Server-tjänsten med mssql-conf
Du kan installera adutil och integrera den med mssql-conf, för att skapa och konfigurera keytab:en med mssql-conf direkt. Den här metoden rekommenderas för att skapa en nyckelfliksfil för SQL Server-tjänsten. Annars kan du skapa nyckelfliksfilen för SQL Server-tjänsten manuellt.
Förutsättningar
Kontrollera att användaren
mssqläger/var/opt/mssql/mssql.conffilen och interoot. Annars måste du köramssql-confkommandona med .sudoPå en domänkontrollant i služba Active Directory-inställningarna för
network.privilegedadaccountkontot (i de här exemplensqluser@CONTOSO.COM) aktiverar du följande alternativ under fliken Konto i avsnittet Kontoalternativ :- Det här kontot stöder Kerberos AES 128-bitarskryptering
- Det här kontot stöder Kerberos AES 256-bitarskryptering
Skapa nyckelfliksfilen
När du har skapat användaren och SPN:erna kan du skapa nyckelfliken med hjälp av följande steg.
Växla till
mssqlanvändaren:su mssqlLogga in som služba Active Directory-användare med kommandot
kinit:kinit privilegeduser@CONTOSO.COMSkapa nyckelfliksfilen:
/opt/mssql/bin/mssql-conf setup-ad-keytab /var/opt/mssql/secrets/mssql.keytab sqluserNär du uppmanas att starta om SQL Server-tjänsten för att implementera den nya služba Active Directory-konfigurationen kan du göra det i nästa avsnitt.
Bekräfta att nyckelfliken har skapats med rätt poster:
klist -kte /var/opt/mssql/secrets/mssql.keytabDu bör se utdata som liknar det här exemplet:
keytab name: FILE:/var/opt/mssql/secrets/mssql.keytab KVNO Timestamp Principal ---- ------------------- ------------------------------------------------------ 4 12/30/2021 14:02:08 sqluser@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1.contoso.com:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1.contoso.com@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1@CONTOSO.COM (aes256-cts-hmac-sha1-96)/var/opt/mssql/mssql.confOm filen inte ägs avmssqlmåste du konfigureramssql-confför att angenetwork.kerberoskeytabfilevärdena ochnetwork.privilegedadaccountenligt föregående steg. Ange lösenordet när du uppmanas att göra det./opt/mssql/bin/mssql-conf set network.kerberoskeytabfile /var/opt/mssql/secrets/mssql.keytab /opt/mssql/bin/mssql-conf set network.privilegedadaccount sqluserVerifiera konfigurationen för att säkerställa att služba Active Directory-autentisering fungerar utan problem.
/opt/mssql/bin/mssql-conf validate-ad-config /var/opt/mssql/secrets/mssql.keytabUtdata ser ut ungefär som i följande exempel:
Detected Configuration: Default Realm: CONTOSO.COM Keytab: /var/opt/mssql/secrets/mssql.keytab Reverse DNS Result: sql1.contoso.com SQL Server Port: 1433 Detected SPNs (SPN, KVNO): (MSSQLSvc/sql1.CONTOSO.COM:1433, 4) (MSSQLSvc/sql1.CONTOSO.COM, 4) (MSSQLSvc/sql1:1433, 4) (MSSQLSvc/sql1, 4) Privileged Account (Name, KVNO): (sqluser, 4)
Skapa nyckelfliksfilen för SQL Server-tjänsten manuellt
Om du har installerat adutil och integrerat den med mssql-conf kan du gå vidare till Skapa filen SQL Server tjänstnyckelflik med mssql-conf.
Skapa keytab-filen som innehåller poster för varje av de fyra SPN som skapades tidigare och en för användaren.
adutil keytab createauto -k /var/opt/mssql/secrets/mssql.keytab -p 1433 -H sql1.contoso.com --password '<password>' -s MSSQLSvcFörsiktighet
Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt.
De möjliga kommandoradsalternativen är:
-
-k: Sökvägen därmssql.keytabfilen skapas. I föregående exempel bör katalogen/var/opt/mssql/secrets/redan finnas på värdmaskinen. -
-p: Porten som ska användas för att generera SPN. Om det inte anges genereras SPN utan port. -
-H: Värdnamnet som ska användas för att generera SPN. Om det inte anges används datorns FQDN. I det här fallet ärsql1värdnamnet och FQDN ärsql1.contoso.com. -
-s: Tjänstnamnet som ska användas för att generera SPN. I det här exemplet ärMSSQLSvcSQL Server-tjänstnamnet . -
--password: Lösenordet för det privilegierade služba Active Directory-användarkontot som skapades tidigare. -
-eeller--enctype: Krypteringstyper för nyckelfliksposten. Använd en kommaavgränsad lista med värden. Om det inte anges visas en interaktiv fråga.
Du kan välja mer än en krypteringstyp, så länge som din värd och domän stöder krypteringstypen. I det här exemplet kan du välja
aes256-cts-hmac-sha1-96ochaes128-cts-hmac-sha1-96. Du bör dock undvikaarcfour-hmaci en produktionsmiljö eftersom den har svag kryptering.Om du vill välja krypteringstyp utan att fråga kan du ange val av krypteringstyp med argumentet
-ei föregående kommando. Om du vill ha mer hjälp om alternativenadutil keytabkör du det här kommandot:adutil keytab createauto --help-
Lägg till en post i nyckelfliken för huvudnamnet och lösenordet som SQL Server använder för att ansluta till služba Active Directory:
adutil keytab create -k /var/opt/mssql/secrets/mssql.keytab -p sqluser --password '<password>'Försiktighet
Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt.
-
-k: Sökväg där du vill skapamssql.keytabfilen. -
-p: Huvudnamn som ska läggas till i keytab.
Skriver
adutil keytab [ create | autocreate ]inte över de tidigare filerna. De läggs bara till i filen om de redan finns.-
Kontrollera att användaren
mssqläger den skapade nyckelflikenmssqloch att endast användaren har läs- och skrivåtkomst till filen. Du kan köra kommandonachownochchmodpå följande sätt:chown mssql /var/opt/mssql/secrets/mssql.keytab chmod 440 /var/opt/mssql/secrets/mssql.keytab
Konfigurera SQL Server för att använda nyckelfliken
Kör kommandona nedan för att konfigurera SQL Server att använda den nyckelflik som skapades i föregående steg och ange det privilegierade služba Active Directory-kontot som användaren skapade tidigare. I vårt exempel är sqluseranvändarnamnet .
/opt/mssql/bin/mssql-conf set network.kerberoskeytabfile /var/opt/mssql/secrets/mssql.keytab
/opt/mssql/bin/mssql-conf set network.privilegedadaccount sqluser
Starta om SQL Server
Kör följande kommando för att starta om SQL Server-tjänsten:
sudo systemctl restart mssql-server
Skapa služba Active Directory-baserade SQL Server-inloggningar i Transact-SQL
Anslut till SQL Server-instansen och kör följande kommandon för att skapa inloggningen och bekräfta att den finns.
CREATE LOGIN [contoso\privilegeduser]
FROM WINDOWS;
SELECT name
FROM sys.server_principals;
Ansluta till SQL Server med Hjälp av služba Active Directory-autentisering
Använd dina Windows-autentiseringsuppgifter för att ansluta till SQL Server-instansen med SQL Server Management Studio (SSMS).
Du kan också använda ett verktyg som sqlcmd-verktyget för att ansluta till SQL Server-instansen med Windows-autentisering.
sqlcmd -E -S 'sql1.contoso.com'
Relaterat innehåll
- Förstå služba Active Directory-autentisering för SQL Server på Linux och containrar
- Felsöka služba Active Directory-autentisering för SQL Server på Linux och containrar
- služba Active Directory-autentisering för SQL Server på Linux
- Självstudie: Konfigurera služba Active Directory-autentisering med SQL Server på Linux-containrar
- Rotera nyckelflikar för SQL Server på Linux