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.
Pré-requisitos
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.
Verificar se o SQL Server tem uma configuração 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.
Obter o centro de distribuição de chaves Kerberos
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.
Ingressar o sistema operacional no controlador de domínio do Active Directory
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
Testar a recuperação do tíquete de concessão de tíquete
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.
Conectar-se usando o Azure Data Studio
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.