Anteckning
Å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 – Linux
I den här självstudien beskrivs hur du konfigurerar Windows Active Directory-autentisering för SQL Server i Linux med adutil. En annan metod för att konfigurera Active Directory-autentisering med ktpass finns i Självstudie: Använda 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 Active Directory-domän
- Skapa en Active Directory-användare för SQL Server och ange tjänstens huvudnamn (SPN) med adutil
- Skapa SQL Server-tjänstens nyckelflik (nyckeltabell)
- Konfigurera SQL Server för att använda nyckelfliksfilen
- Skapa Active Directory-baserade SQL Server-inloggningar med hjälp av Transact-SQL
- Ansluta till SQL Server med Hjälp av Active Directory-autentisering
Förutsättningar
Innan du konfigurerar Active Directory-autentisering behöver du:
- En Windows-domänkontrollant som kör Active Directory Domain Services i nätverket.
- Adutil-verktyget 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 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 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 Active Directory-domän
Information om hur du ansluter sql1 till Active Directory-domänen finns i Ansluta SQL Server på en Linux-värd till en Active Directory-domän.
Installera adutil
Om du vill installera adutil följer du stegen som beskrivs i artikeln Introduktion till adutil – Active Directory-verktyget på värddatorn som du lade till i domänen i föregående steg.
Använd adutil för att skapa en 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 adutil och skapa den nya användaren som ska användas som det privilegierade Active Directory-kontot 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 nyckelfliken 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öra mssql-conf-kommandona med .sudoPå en domänkontrollant i 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
oracleanvändaren:su mssqlLogga in som 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 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 konfigurera mssql-conf fö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 Active Directory-autentisering fungerar utan problem.
/opt/mssql/bin/mssql-conf validate-ad-config /var/opt/mssql/secrets/mssql.keytabDu bör se utdata som liknar 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 nyckelfliksfilen för SQL Server-tjänsten 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 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 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 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 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 Active Directory-autentisering
Om du vill ansluta med SSMS loggar du in på SQL Server-instansen med dina Windows-autentiseringsuppgifter.
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å Active Directory-autentisering för SQL Server på Linux och containrar
- Felsöka Active Directory-autentisering för SQL Server på Linux och containrar
- Active Directory-autentisering för SQL Server på Linux
- Självstudie: Konfigurera Active Directory-autentisering med SQL Server på Linux-containrar
- Rotera nyckelflikar för SQL Server på Linux