Conectar o Azure Data Studio ao SQL Server usando o Kerberos
O Azure Data Studio dá suporte à conexão com o SQL Server usando o Kerberos.
Para usar a autenticação integrada (Autenticação do Windows) no macOS ou no Linux, você precisa configurar um tíquete do Kerberos que vincule o usuário atual a uma conta de domínio do Windows.
Para começar, você precisa do seguinte:
Acesso a um computador ingressado no domínio do Windows para consultar o controlador de domínio do Kerberos.
O SQL Server deve ser configurado para permitir a autenticação Kerberos. Para o driver de cliente em execução no Unix, só há suporte para a autenticação integrada com o uso do Kerberos. Para obter mais informações, veja Como usar a autenticação integrada do Kerberos para se conectar ao SQL Server. Deve haver SPNs (nomes da entidade de serviço) registrados para cada instância do SQL Server à qual você está tentando se conectar. Para obter mais informações, veja Registrar um nome de entidade de serviço para conexões de Kerberos.
Entre no computador host do SQL Server. No prompt de comando do Windows, use setspn -L %COMPUTERNAME%
para listar todos os SPNs do host. Verifique se há entradas que começam com MSSQLSvc/HostName.contoso.com
. Essas entradas significam que o SQL Server registrou um SPN e está pronto para aceitar a autenticação Kerberos.
Se você não tiver acesso ao host da instância do SQL Server, poderá usar o comando setspn -L <SQLSERVER_NETBIOS>
, em que <SQLSERVER_NETBIOS> é o nome do computador do host da instância do SQL Server, em qualquer outro sistema operacional Windows ingressado no mesmo Active Directory.
Localize o valor de configuração do KDC (Centro de Distribuição de Chaves) do Kerberos. Execute o comando a seguir em um computador Windows que esteja ingressado em seu domínio do Active Directory.
Execute nltest
na linha de comando e substitua "DOMAIN.CONTOSO.COM" pelo nome do domínio.
nltest /dsgetdc:DOMAIN.CONTOSO.COM
A saída deverá ser semelhante ao seguinte exemplo:
DC: \\dc-33.domain.contoso.com
Address: \\2111:4444:2111:33:1111:ecff:ffff:3333
...
The command completed successfully
Copie o nome do controlador de domínio que é o valor de configuração do KDC necessário. Nesse caso, é dc-33.domain.contoso.com.
sudo apt-get install realmd krb5-user software-properties-common python-software-properties packagekit
Edite o arquivo /etc/network/interfaces
para que o endereço IP do controlador de domínio do Active Directory esteja listado como dns-nameserver
. Por exemplo:
<...>
# The primary network interface
auto eth0
iface eth0 inet dhcp
dns-nameservers **<AD domain controller IP address>**
dns-search **<AD domain name>**
Observação
O adaptador de rede (eth0) pode ser diferente para computadores diferentes. Para descobrir qual deles você está usando, execute ifconfig e copie a interface que tem um endereço IP e os bytes transmitidos e recebidos.
Após editar esse arquivo, reinicie o serviço de rede:
sudo ifdown eth0 && sudo ifup eth0
Agora, verifique se seu arquivo /etc/resolv.conf
contém uma linha semelhante à seguinte:
nameserver **<AD domain controller IP address>**
Ingresse no domínio do Active Directory:
sudo realm join contoso.com -U 'user@CONTOSO.COM' -v
Veja a saída esperada:
<...>
* Success
Obtenha um TGT (Tíquete de Concessão de Tíquete) do KDC.
kinit username@DOMAIN.CONTOSO.COM
Exiba os tíquetes disponíveis usando klist
. Se o kinit
tiver sido bem-sucedido, você deverá ver um tíquete.
klist
Veja a saída esperada:
krbtgt/DOMAIN.CONTOSO.COM@ DOMAIN.CONTOSO.COM.
Crie um perfil de conexão.
Selecione Autenticação do Windows como o tipo de autenticação.
Para o Servidor, insira um nome de host totalmente qualificado, no formato
hostname.DOMAIN.CONTOSO.COM
.Conclua o perfil de conexão e selecione Conectar.
Depois que você se conectar com êxito, o servidor será exibido na barra lateral SERVIDORES.