Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server su Linux
Questo articolo fornisce indicazioni generali su come collegare un host Linux che esegue SQL Server a un dominio Active Directory. Sono disponibili due metodi: usare un pacchetto SSSD incorporato o usare provider Active Directory di terze parti. Esempi di prodotti di domain join di terze parti sono PowerBroker Identity Services (PBIS),One Identity Safeguard Authentication Services (VAS) e Centrify.
Questa guida include i passaggi per verificare la configurazione di Active Directory. Non ha tuttavia lo scopo di fornire istruzioni su come aggiungere un computer a un dominio quando si usano utilità di terze parti.
Note
Per informazioni sulla configurazione di Active Directory con le versioni più recenti di Ubuntu, RHEL o SLES, vedi Esercitazione: Usare adutil per configurare l'autenticazione di Active Directory con SQL Server in Linux.
Prerequisiti
Prima di configurare l'autenticazione Active Directory, devi configurare un computer che esegui Windows Server come controller di dominio Active Directory sulla tua rete. Poi unisci all'host Linux che esegue SQL Server a un dominio Active Directory.
Le procedure di esempio descritte in questo articolo sono puramente indicative e fanno riferimento ai sistemi operativi Ubuntu 16.04, Red Hat Enterprise Linux (RHEL) 7.x e SUSE Linux Enterprise Server (SLES) 12. I passaggi effettivi possono variare leggermente a seconda dell'ambiente e della versione del sistema operativo. Ad esempio, Ubuntu 18.04 utilizza netplan mentre RHEL 8.x utilizza nmcli tra gli altri strumenti per gestire e configurare la rete. È consigliabile coinvolgere gli amministratori di sistema e di dominio dell'ambiente per le attività specifiche di installazione degli strumenti, configurazione e personalizzazione e per l'eventuale risoluzione dei problemi.
Note
A partire da SQL Server 2025 (17.x), SUSE Linux Enterprise Server (SLES) non è supportato.
DNS inverso (rDNS)
Quando si configura un computer che esegue Windows Server come controller di dominio, è possibile che non sia disponibile una zona rDNS per impostazione predefinita. Assicurati che esista una zona rDNS applicabile sia per il controller di dominio che per l'indirizzo IP del computer Linux che eseguirà SQL Server.
Assicurati anche che esistano record PTR che puntano ai tuoi controller di dominio.
Controllare la connessione a un controller di dominio
Verificare che sia possibile contattare il controller di dominio usando sia il nome breve che quello completo del dominio e usando il nome host del controller di dominio. L'indirizzo IP del domain controller dovrebbe anche risolversi nel nome di dominio completamente qualificato (FQDN) del domain controller:
ping contoso
ping contoso.com
ping dc1.contoso.com
nslookup <IP address of dc1.contoso.com>
Tip
Questa esercitazione utilizza contoso.com e CONTOSO.COM rispettivamente come nomi di dominio e di ambito di esempio. Viene utilizzato anche DC1.CONTOSO.COM come esempio di nome di dominio completo del controller di dominio. È necessario sostituire questi nomi con i propri valori.
Per garantire una corretta risoluzione dei nomi di dominio, è fondamentale aggiornare il file /etc/resolv.conf se vengono rilevate discrepanze durante i controlli dei nomi. La procedura di aggiornamento varia in base alle distribuzioni; pertanto, si consiglia di consultare la documentazione ufficiale per trovare indicazioni accurate. L'elenco seguente fornisce collegamenti per alcune distribuzioni e le relative versioni principali:
| Distribution | Articolo di riferimento |
|---|---|
| RHEL 8 | Configurazione manuale di /etc/resolv.conf |
| RHEL 9 | Configurazione manuale di /etc/resolv.conf |
| SLES 15 | Impostazioni di NETCONFIG_DNS_STATIC_SEARCHLIST e NETCONFIG_DNS_STATIC_SERVERS |
| Ubuntu | Sezione Risoluzione dei nomi |
L'obiettivo è configurare /etc/resolv.conf correttamente per la distribuzione, in modo da agevolare la risoluzione dei nomi di dominio. Ad esempio, se il dominio è contoso.com e l'indirizzo IP di Active Directory è 10.0.0.4, /etc/resolv.conf deve essere configurato di conseguenza per garantire la corretta risoluzione dei nomi dall'host.
cat /etc/resolv.conf
Il set di risultati è il seguente.
# Generated by NetworkManager
search contoso.com com
nameserver 10.0.0.4
RHEL 7.x
Modifica il file
/etc/sysconfig/network-scripts/ifcfg-eth0in modo che il dominio Active Directory sia incluso nell'elenco di ricerca del dominio. In alternativa, modificare un altro file di configurazione dell'interfaccia nel modo appropriato:sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0L'output è simile al seguente esempio:
PEERDNS=no DNS1=<Domain controller IP address> DOMAIN="contoso.com com"Dopo aver modificato il file, riavviare il servizio di rete:
sudo systemctl restart networkVerifica ora che il file
/etc/resolv.confcontenga una riga simile all’esempio seguente:sudo vi /etc/resolv.confL'output è simile al seguente esempio:
search contoso.com com nameserver <Domain controller IP address>Se non è ancora possibile effettuare il ping del controller di dominio, trova il nome di dominio completo e l'indirizzo IP del controller di dominio. Un nome di dominio di esempio è
DC1.CONTOSO.COM. Aggiungi la voce seguente a/etc/hosts:sudo vi /etc/hostsL'output è simile al seguente esempio:
<IP address> DC1.CONTOSO.COM CONTOSO.COM CONTOSO
Unisciti al dominio Active Directory
Dopo aver verificato la configurazione di base e la connettività con il controller di dominio, ci sono due opzioni per unire un host Linux che esegue SQL Server al dominio Active Directory:
- Opzione 1: Usare un pacchetto SSSD
- Opzione 2: Utilizzare utility di fornitori Active Directory di terze parti
Opzione 1: Usare il pacchetto SSSD per aggiungere il dominio Active Directory
Questo metodo collega l'host Linux che esegue SQL Server a un dominio Active Directory utilizzando i pacchetti realmd e sssd.
È il metodo preferito per l'aggiunta di un host Linux a un controller di dominio Active Directory.
Per istruzioni più aggiornate, consultare la documentazione ufficiale fornita dai partner di distribuzione.
| Distribution | Articolo di riferimento |
|---|---|
| RHEL 8 | Individuazione e aggiunta a un dominio di Active Directory tramite SSSD |
| RHEL 9 | Individuazione e aggiunta a un dominio di Active Directory tramite SSSD |
| SLES | Aggiunta ad Active Directory come membro del dominio Windows |
| Ubuntu | Come configurare SSSD con Active Directory |
Usa i seguenti passaggi per unire un host Linux che esegue SQL Server a un dominio Active Directory:
Usa realmd per collegare la tua macchina host al dominio Active Directory. Devi prima installare sia i pacchetti client realmd che Kerberos sull'host Linux di SQL Server utilizzando il gestore di pacchetti della tua distribuzione Linux:
Se l'installazione del pacchetto client Kerberos richiede un nome dell'area di autenticazione, immettere il nome di dominio in lettere maiuscole.
Dopo aver verificato che il DNS sia configurato correttamente, aggiungere il dominio eseguendo il comando seguente. È necessario eseguire l'autenticazione con un account di Active Directory che disponga di privilegi sufficienti in Active Directory per aggiungere un nuovo computer al dominio. Questo comando crea un nuovo account computer in Active Directory, crea il file keytab host
/etc/krb5.keytab, configura il dominio in/etc/sssd/sssd.confe aggiorna/etc/krb5.conf.A causa di un problema con realmd, impostare prima di tutto il nome host del computer sul nome di dominio completo anziché sul nome del computer. In caso contrario, realmd potrebbe non creare tutti i nomi dell'entità servizio necessari per il computer e le voci DNS non verranno aggiornate automaticamente, anche se il controller di dominio supporta gli aggiornamenti dinamici di DNS.
sudo hostname <old hostname>.contoso.comDopo aver eseguito questo comando, il file
/etc/hostnamedeve contenere<old hostname>.contoso.com.sudo realm join contoso.com -U 'user@CONTOSO.COM' -vDovrebbe essere visualizzato il messaggio
Successfully enrolled machine in realm.La tabella seguente elenca alcuni messaggi di errore che si potrebbero ricevere e suggerimenti per risolverli:
Messaggio d'errore Raccomandazione Necessary packages are not installedInstallare i pacchetti usando lo strumento di gestione pacchetti della distribuzione Linux prima di eseguire di nuovo il comando realm join. Insufficient permissions to join the domainVerificare con un amministratore di dominio di disporre di autorizzazioni sufficienti per aggiungere computer Linux al dominio. KDC reply did not match expectationsÈ possibile che non sia stato specificato il nome del dominio corretto per l'utente. I nomi dei realm distinguono tra maiuscole e minuscole, sono solitamente in maiuscolo e possono essere identificati con il comando realm discover contoso.com.SQL Server usa SSSD e NSS per il mapping degli account utente e dei gruppi agli ID di sicurezza (SID). SSSD deve essere configurato e in esecuzione affinché SQL Server possa creare correttamente gli account di accesso di Active Directory. realmd in genere esegue questa operazione automaticamente nell'ambito dell'aggiunta del dominio, ma in alcuni casi è necessario eseguirla separatamente.
Per altre informazioni, vedere gli articoli che spiegano come configurare SSSD manualmente e come configurare NSS per l'uso con SSSD.
Verificare che sia ora possibile raccogliere informazioni su un utente dal dominio e che sia possibile acquisire un ticket Kerberos come tale utente. A questo scopo, l'esempio seguente usa i comandi id, kinit e klist.
Usa
idper confermare che SSSD possa risolvere l’utente del dominio e le relative appartenenze ai gruppi:id user@contoso.comL'output dovrebbe mostrare l'ID utente dell'utente del dominio, l'ID del gruppo e le appartenenze ai gruppi:
uid=1348601103(user@contoso.com) gid=1348600513(domain group@contoso.com) groups=1348600513(domain group@contoso.com)Da usare
kinitper richiedere un ticket Kerberos per l'utente del dominio:kinit user@CONTOSO.COMIl comando dovrebbe chiedere la password dell'utente del dominio:
Password for user@CONTOSO.COM:Da usare
klistper verificare il biglietto Kerberos:klistL'output dovrebbe identificare l'utente di dominio come entità principale predefinita:
Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: user@CONTOSO.COMSe
id user@contoso.comrestituisceNo such user, verifica che il servizio SSSD sia stato avviato correttamente eseguendo il comandosudo systemctl status sssd. Se il servizio è in esecuzione e viene ancora visualizzato l'errore, provare ad abilitare la registrazione dettagliata per SSSD. Per altre informazioni, vedere la documentazione di Red Hat relativa alla risoluzione dei problemi di SSSD.Se
kinit user@CONTOSO.COMrestituisceKDC reply didn't match expectations while getting initial credentials, verifica di avere specificato l'ambito in maiuscolo.
Per maggiori informazioni, consulta la documentazione Red Hat per scoprire e unirsi a un dominio AD usando SSSD.
Opzione 2: Utilizzare utility di fornitori Active Directory di terze parti
È possibile usare utilità di terze parti come PBIS, VAS o Centrify. Questo articolo non include le procedure per ogni singola utilità. Devi prima usare uno di questi utility per unirti all'host Linux che esegue SQL Server al dominio prima di continuare.
SQL Server non utilizza codice o librerie di integratori terzi per query relative ad Active Directory. SQL Server esegue sempre le query su Active Directory tramite chiamate direttamente alla libreria OpenLDAP in questa configurazione. Gli integratori di terze parti servono solo a collegare l'host Linux a un dominio Active Directory, e SQL Server non ha alcuna comunicazione diretta con queste utilità.
Importante
Vedere le raccomandazioni per l'uso dell'opzione di configurazione mssql-conf network.disablesssd nella sezione Opzioni di configurazione aggiuntive dell'articolo Usare l'autenticazione di Active Directory con SQL Server in Linux.
Verifica che il tuo /etc/krb5.conf sia configurato correttamente. Per la maggior parte dei provider di Active Directory di terze parti, questa configurazione viene eseguita automaticamente. Tuttavia, per evitare eventuali problemi futuri, verificare se in /etc/krb5.conf sono presenti i valori seguenti:
sudo vi /etc/krb5.conf
L'output è simile al seguente esempio:
[libdefaults]
default_realm = CONTOSO.COM
[realms]
CONTOSO.COM = {
}
[domain_realm]
contoso.com = CONTOSO.COM
.contoso.com = CONTOSO.COM
Verificare che il DNS inverso sia configurato correttamente
Il comando seguente deve restituire il nome di dominio completo (FQDN) dell'host che esegue SQL Server. Un esempio è SqlHost.contoso.com.
host <IP address of SQL Server host>
L'output di questo comando dovrebbe essere simile a <reversed IP address>.in-addr.arpa domain name pointer SqlHost.contoso.com. Se questo comando non restituisce l'FQDN del tuo host, o se l'FQDN è errato, aggiungi una voce DNS inversa per l'host Linux che esegue SQL Server al tuo server DNS.
Passo successivo
In questo articolo, hai configurato un host Linux che esegue SQL Server con autenticazione Active Directory. Per completare la configurazione di SQL Server in Linux per il supporto degli account Active Directory, seguire queste istruzioni.