Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server - Linux
In deze zelfstudie wordt uitgelegd hoe u Windows Active Directory-verificatie configureert voor SQL Server in Linux met adutil. Zie zelfstudie: Active Directory-verificatie gebruiken met SQL Server op Linux voor een andere methode voor het configureren van Active Directory-verificatie met behulp van ktpass.
Deze zelfstudie bestaat uit de volgende taken:
- adutil- installeren
- Linux-machine toevoegen aan uw Active Directory-domein
- Een Active Directory-gebruiker maken voor SQL Server en de SPN (Service Principal Name) instellen met behulp van adutil
- Het keytabbestand van de SQL Server-service (sleuteltabel) maken
- SQL Server configureren voor het gebruik van het keytab-bestand
- Op Active Directory gebaseerde SQL Server-aanmeldingen maken met behulp van Transact-SQL
- Verbinding maken met SQL Server met behulp van Active Directory-verificatie
Vereiste voorwaarden
Voordat u Active Directory-verificatie configureert, hebt u het volgende nodig:
- Een Windows-domeincontroller met Active Directory Domain Services in uw netwerk.
- Het hulpprogramma adutil dat is geïnstalleerd op een hostcomputer die lid is van een domein.
Voorbereiding van domeincomputers
Zorg ervoor dat er een doorstuurhostvermelding (A) is toegevoegd in Active Directory voor het IP-adres van de Linux-host. In deze zelfstudie is het IP-adres van de hostmachine sql110.0.0.10. In het volgende voorbeeld voegen we de doorstuurhostvermelding toe in Active Directory. De vermelding zorgt ervoor dat wanneer gebruikers verbinding maken met sql1.contoso.com, deze de juiste host bereikt.
Voor deze zelfstudie gebruikt u een omgeving in Azure met drie virtuele machines. Eén virtuele machine (VM) is een Windows Server-computer met de naam adVM.contoso.com, die wordt uitgevoerd als een domeincontroller (DC) met de domeinnaam contoso.com. De tweede VM is een clientcomputer met Windows 10 met de naam winbox, waarop SQL Server Management Studio (SSMS) is geïnstalleerd. De derde computer is een Ubuntu 18.04 LTS-computer met de naam sql1, die als host fungeert voor SQL Server.
De Linux-hostcomputer toevoegen aan uw Active Directory-domein
Als u sql1 aan het Active Directory-domein wilt toevoegen, raadpleeg dan SQL Server op een Linux-host toevoegen aan een Active Directory-domein.
Adutil installeren
Als u adutil wilt installeren, volgt u de stappen in het artikel Inleiding tot adutil - Active Directory-hulpprogramma op de hostcomputer die u in de vorige stap aan het domein hebt toegevoegd.
Adutil gebruiken om een Active Directory-gebruiker voor SQL Server te maken en de SPN (Service Principal Name) in te stellen
Verkrijg of vernieuw de Kerberos TGT (ticket-granting ticket) door de opdracht
kinitte gebruiken. U moet een bevoegd account voor dekinitopdracht gebruiken en de hostcomputer moet al deel uitmaken van het domein. Het account heeft toestemming nodig om verbinding te maken met het domein en accounts en SPN's in het domein te maken.In dit voorbeeldscript wordt al een bevoegde gebruiker met de naam
privilegeduser@CONTOSO.COMgemaakt op de domeincontroller.kinit privilegeduser@CONTOSO.COMMaak met behulp van adutil de nieuwe gebruiker aan om deze als bevoegd Active Directory-account voor SQL Server te gebruiken.
Wachtwoorden kunnen op drie verschillende manieren worden opgegeven. Als u meer dan een van deze methoden gebruikt, hebben ze voorrang in de volgende volgorde:
- Gebruik de wachtwoordvlag:
--password <password> - In een omgevingsvariabele:
ADUTIL_ACCOUNT_PWD - Interactieve invoer bij een opdrachtregelprompt
De omgevingsvariabele of interactieve invoermethoden zijn veiliger dan de wachtwoordvlag.
adutil user create --name sqluser --distname CN=sqluser,CN=Users,DC=CONTOSO,DC=COM --password '<password>'U kunt de naam van het account opgeven met behulp van de onderscheidende naam (
--distname) zoals eerder weergegeven, of u kunt de naam van de Organisatorische Eenheid (OE) gebruiken. De OE-naam (--ou) heeft voorrang op de onderscheidende naam in het geval dat u beide opgeeft. U kunt de volgende opdracht uitvoeren voor meer informatie:adutil user create --helpWaarschuwing
Uw wachtwoord moet voldoen aan het standaard SQL Server-wachtwoordbeleid . Standaard moet het wachtwoord ten minste acht tekens lang zijn en tekens bevatten uit drie van de volgende vier sets: hoofdletters, kleine letters, basis-10 cijfers en symbolen. Wachtwoorden mogen maximaal 128 tekens lang zijn. Gebruik wachtwoorden die zo lang en complex mogelijk zijn.
- Gebruik de wachtwoordvlag:
Registreer SPN's voor de principal die u eerder heeft gemaakt. U moet de FQDN (Fully Qualified Domain Name) van de computer gebruiken. In deze zelfstudie gebruiken we de standaardpoort van SQL Server, 1433. Uw poortnummer kan afwijken.
adutil spn addauto -n sqluser -s MSSQLSvc -H sql1.contoso.com -p 1433-
addautomaakt automatisch de SPN's, zolang er voldoende bevoegdheden voor hetkinitaccount zijn. -
-n: De naam van het account waaraan de SPN's worden toegewezen. -
-s: de servicenaam die moet worden gebruikt voor het genereren van SPN's. In dit geval is dit voor de SQL Server-service. Daarom isMSSQLSvcde servicenaam. -
-H: de hostnaam die moet worden gebruikt voor het genereren van SPN's. Als dit niet is opgegeven, wordt de FQDN van de lokale host gebruikt. In dit geval issql1de hostnaam en de FQDN.sql1.contoso.com -
-p: de poort die moet worden gebruikt voor het genereren van SPN's. Als dit niet is opgegeven, worden SPN's zonder poort gegenereerd. SQL-verbindingen werken alleen in dit geval wanneer het SQL Server-exemplaar luistert naar de standaardpoort 1433.
-
Het keytabbestand van de SQL Server-service maken met mssql-conf
U kunt adutil installeren en integreren met mssql-conf, om de keytab rechtstreeks te maken en configureren met behulp van mssql-conf . Deze methode heeft de voorkeur voor het maken van een keytabbestand van de SQL Server-service. Anders kunt u het keytabbestand van de SQL Server-service handmatig maken.
Vereiste voorwaarden
Zorg ervoor dat de
mssqlgebruiker eigenaar is van het/var/opt/mssql/mssql.confbestand en nietroot. Anders moet u de mssql-conf-opdrachten uitvoeren met behulp vansudo.Schakel op een domeincontroller in de Active Directory-instellingen voor het
network.privilegedadaccountaccount (in deze voorbeeldensqluser@CONTOSO.COM) de volgende opties in op het tabblad Account , in de sectie Accountopties :- Dit account ondersteunt Kerberos AES 128-bits versleuteling
- Dit account ondersteunt Kerberos AES 256-bits versleuteling
Het keytab-bestand maken
Zodra u de gebruiker en SPN's hebt gemaakt, kunt u de keytab maken met behulp van de volgende stappen.
Overschakelen naar de
oraclegebruiker:su mssqlMeld u aan als de Active Directory-gebruiker met behulp van de
kinitopdracht:kinit privilegeduser@CONTOSO.COMMaak het keytab-bestand:
/opt/mssql/bin/mssql-conf setup-ad-keytab /var/opt/mssql/secrets/mssql.keytab sqluserWanneer u wordt gevraagd de SQL Server-service opnieuw te starten om de nieuwe Active Directory-configuratie te gebruiken, kunt u dit doen in de volgende sectie.
Controleer of de keytab is gemaakt met de juiste vermeldingen:
klist -kte /var/opt/mssql/secrets/mssql.keytabDe uitvoer moet er ongeveer uitzien als in dit voorbeeld:
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)Als het
/var/opt/mssql/mssql.confbestand niet in het bezit vanmssqlis, moet u het mssql-conf configureren om denetwork.kerberoskeytabfileennetwork.privilegedadaccountwaarden in te stellen volgens de vorige stappen. Typ het wachtwoord wanneer u hierom wordt gevraagd./opt/mssql/bin/mssql-conf set network.kerberoskeytabfile /var/opt/mssql/secrets/mssql.keytab /opt/mssql/bin/mssql-conf set network.privilegedadaccount sqluserValideer uw configuratie om ervoor te zorgen dat Active Directory-verificatie zonder problemen werkt.
/opt/mssql/bin/mssql-conf validate-ad-config /var/opt/mssql/secrets/mssql.keytabU zou uitvoer moeten zien die lijkt op het volgende voorbeeld:
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)
Het keytabbestand van de SQL Server-service handmatig maken
Als u adutil hebt geïnstalleerd en geïntegreerd met mssql-conf, kunt u doorgaan naar het keytabbestand van de SQL Server-service maken met behulp van mssql-conf.
Maak het keytab-bestand met vermeldingen voor elk van de vier SPN's die u eerder hebt gemaakt en één voor de gebruiker.
adutil keytab createauto -k /var/opt/mssql/secrets/mssql.keytab -p 1433 -H sql1.contoso.com --password '<password>' -s MSSQLSvcWaarschuwing
Uw wachtwoord moet voldoen aan het standaard SQL Server-wachtwoordbeleid . Standaard moet het wachtwoord ten minste acht tekens lang zijn en tekens bevatten uit drie van de volgende vier sets: hoofdletters, kleine letters, basis-10 cijfers en symbolen. Wachtwoorden mogen maximaal 128 tekens lang zijn. Gebruik wachtwoorden die zo lang en complex mogelijk zijn.
De mogelijke opdrachtregelopties zijn:
-
-k: het pad waar hetmssql.keytabbestand is gemaakt. In het vorige voorbeeld moet de map/var/opt/mssql/secrets/al aanwezig zijn op de host. -
-p: de poort die moet worden gebruikt voor het genereren van SPN's. Als dit niet is opgegeven, worden SPN's zonder poort gegenereerd. -
-H: de hostnaam die moet worden gebruikt voor het genereren van SPN's. Als dit niet is opgegeven, wordt de FQDN van de lokale host gebruikt. In dit geval issql1de hostnaam en de FQDN.sql1.contoso.com -
-s: de servicenaam die moet worden gebruikt voor het genereren van SPN's. In dit voorbeeld isMSSQLSvcde naam van de SQL Server-service. -
--password: het wachtwoord van het bevoegde Active Directory-gebruikersaccount dat eerder is gemaakt. -
-eof--enctype: versleutelingstypen voor de keytabvermelding. Gebruik een door komma's gescheiden lijst met waarden. Als dit niet is opgegeven, wordt er een interactieve prompt weergegeven.
U kunt meer dan één versleutelingstype kiezen, zolang uw host en domein het versleutelingstype ondersteunen. In dit voorbeeld kunt u kiezen
aes256-cts-hmac-sha1-96enaes128-cts-hmac-sha1-96. U moet echter vermijdenarcfour-hmacin een productieomgeving omdat deze zwakke versleuteling heeft.Als u het versleutelingstype wilt kiezen zonder te vragen, kunt u uw keuze voor het versleutelingstype opgeven met behulp van het
-eargument in de vorige opdracht. Voer deze opdracht uit voor meer hulp bij deadutil keytabopties:adutil keytab createauto --help-
Voeg een vermelding toe in de keytab voor de principal-naam en het wachtwoord die SQL Server gebruikt om verbinding te maken met Active Directory:
adutil keytab create -k /var/opt/mssql/secrets/mssql.keytab -p sqluser --password '<password>'Waarschuwing
Uw wachtwoord moet voldoen aan het standaard SQL Server-wachtwoordbeleid . Standaard moet het wachtwoord ten minste acht tekens lang zijn en tekens bevatten uit drie van de volgende vier sets: hoofdletters, kleine letters, basis-10 cijfers en symbolen. Wachtwoorden mogen maximaal 128 tekens lang zijn. Gebruik wachtwoorden die zo lang en complex mogelijk zijn.
-
-k: Pad waar u hetmssql.keytabbestand wilt maken. -
-p: Principal die moet worden toegevoegd aan de keytab.
adutil keytab [ create | autocreate ]overschrijft de vorige bestanden niet, maar voegt gegevens toe aan het bestand als het al aanwezig is.-
Zorg ervoor dat de
mssqlgebruiker eigenaar is van de gemaakte keytab en dat alleen demssqlgebruiker lees-/schrijftoegang tot het bestand heeft. U kunt dechownenchmodopdrachten als volgt uitvoeren:chown mssql /var/opt/mssql/secrets/mssql.keytab chmod 440 /var/opt/mssql/secrets/mssql.keytab
SQL Server configureren voor het gebruik van de keytab
Voer de onderstaande opdrachten uit om SQL Server te configureren voor het gebruik van de keytab die u in de vorige stap hebt gemaakt en stel het bevoegde Active Directory-account in als de gebruiker die u eerder hebt gemaakt. In ons voorbeeld is sqluserde gebruikersnaam .
/opt/mssql/bin/mssql-conf set network.kerberoskeytabfile /var/opt/mssql/secrets/mssql.keytab
/opt/mssql/bin/mssql-conf set network.privilegedadaccount sqluser
SQL Server opnieuw starten
Voer de volgende opdracht uit om de SQL Server-service opnieuw op te starten:
sudo systemctl restart mssql-server
Op Active Directory gebaseerde SQL Server-aanmeldingen maken in Transact-SQL
Maak verbinding met het SQL Server-exemplaar en voer de volgende opdrachten uit om de aanmelding te maken en controleer of deze bestaat.
CREATE LOGIN [contoso\privilegeduser]
FROM WINDOWS;
SELECT name
FROM sys.server_principals;
Verbinding maken met SQL Server met behulp van Active Directory-verificatie
Als u verbinding wilt maken met SSMS, logt u in bij het SQL Server-exemplaar met uw Windows-referenties.
U kunt ook een hulpprogramma zoals het sqlcmd-hulpprogramma gebruiken om verbinding te maken met het SQL Server-exemplaar met behulp van Windows-verificatie.
sqlcmd -E -S 'sql1.contoso.com'
Verwante inhoud
- Inzicht in Active Directory-verificatie voor SQL Server in Linux en containers
- Problemen met Active Directory-verificatie oplossen voor SQL Server in Linux en containers
- Active Directory-verificatie voor SQL Server in Linux
- Zelfstudie: Active Directory-verificatie configureren met SQL Server op Linux-containers
- Keytabs roteren voor SQL Server op Linux