Connettere Azure Data Studio a SQL Server tramite Kerberos
Azure Data Studio supporta la connessione a SQL Server tramite Kerberos.
Per usare l'autenticazione integrata (autenticazione di Windows) in macOS o Linux, è necessario configurare un ticket Kerberos che collega l'utente corrente a un account di dominio di Windows.
Prerequisiti
Per iniziare, è necessario:
Accesso a un computer aggiunto a un dominio di Windows per eseguire una query sul controller di dominio Kerberos.
SQL Server deve essere configurato per consentire l'autenticazione Kerberos. Per il driver client in esecuzione su UNIX, l'autenticazione integrata è supportata solo con Kerberos. Per altre informazioni, vedere Uso dell'autenticazione integrata Kerberos per la connessione a SQL Server. Devono essere presenti nomi dell'entità servizio (SPN) registrati per ogni istanza di SQL Server a cui si tenta di connettersi. Per altre informazioni, vedere Registrare un nome dell'entità servizio per le connessioni Kerberos.
Verificare se SQL Server è configurato per Kerberos
Accedere al computer host di SQL Server. Al prompt dei comandi di Windows usare setspn -L %COMPUTERNAME%
per elencare tutti i nomi SPN per l'host. Verificare che siano presenti voci che iniziano con MSSQLSvc/HostName.contoso.com
. Queste voci indicano che SQL Server ha registrato un SPN ed è pronto ad accettare l'autenticazione Kerberos.
Se non si ha accesso all'host dell'istanza di SQL Server, da qualsiasi altro sistema operativo Windows aggiunto allo stesso dominio di Active Directory si può usare il comando setspn -L <SQLSERVER_NETBIOS>
, dove <SQLSERVER_NETBIOS> è il nome computer dell'host dell'istanza di SQL Server.
Ottenere il Centro distribuzione chiavi Kerberos
Trovare il valore di configurazione del Centro distribuzione chiavi (KDC) Kerberos. Eseguire il comando seguente in un computer Windows aggiunto al dominio di Active Directory.
Eseguire nltest
dalla riga di comando e sostituire "DOMAIN.CONTOSO.COM" con il nome di dominio.
nltest /dsgetdc:DOMAIN.CONTOSO.COM
L'output è simile al seguente esempio:
DC: \\dc-33.domain.contoso.com
Address: \\2111:4444:2111:33:1111:ecff:ffff:3333
...
The command completed successfully
Copiare il nome del controller di dominio che è il valore di configurazione KDC richiesto. In questo caso, è dc-33.domain.contoso.com.
Aggiungere il sistema operativo al controller di dominio di Active Directory
sudo apt-get install realmd krb5-user software-properties-common python-software-properties packagekit
Modificare il file /etc/network/interfaces
in modo che l'indirizzo IP del controller di dominio di Active Directory sia elencato come dns-nameserver
. Ad esempio:
<...>
# The primary network interface
auto eth0
iface eth0 inet dhcp
dns-nameservers **<AD domain controller IP address>**
dns-search **<AD domain name>**
Nota
L'interfaccia di rete (eth0) potrebbe variare per computer diversi. Per individuare quella in uso, eseguire ifconfig e copiare l'interfaccia che ha un indirizzo IP e ha trasmesso e ricevuto byte.
Dopo aver modificato il file, riavviare il servizio di rete:
sudo ifdown eth0 && sudo ifup eth0
Verificare ora che il file /etc/resolv.conf
contenga una riga come la seguente:
nameserver **<AD domain controller IP address>**
Aggiungere al dominio di Active Directory:
sudo realm join contoso.com -U 'user@CONTOSO.COM' -v
Ecco l'output previsto:
<...>
* Success
Testare il recupero del ticket di concessione ticket
Ottenere un Ticket Granting Ticket (TGT) da KDC.
kinit username@DOMAIN.CONTOSO.COM
Visualizzare i ticket disponibili usando klist
. Se kinit
ha avuto esito positivo, verrà visualizzato un ticket.
klist
Ecco l'output previsto:
krbtgt/DOMAIN.CONTOSO.COM@ DOMAIN.CONTOSO.COM.
Connettersi tramite Azure Data Studio
Creare un nuovo profilo di connessione.
Selezionare Autenticazione di Windows come tipo di autenticazione.
Per il server, immettere il nome host completo nel formato
hostname.DOMAIN.CONTOSO.COM
.Completare il profilo di connessione e selezionare Connetti.
Dopo il completamento della connessione, il server compare nella barra laterale SERVER.