Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server em Linux
Este artigo fornece orientações gerais sobre como ligar um host Linux que executa SQL Server a um domínio Active Directory. Há dois métodos: usar um pacote SSSD interno ou usar provedores do Ative Directory de terceiros. Exemplos de produtos de junção de domínios de terceiros são o PowerBroker Identity Services (PBIS),One Identity Safeguard Authentication Services (VAS) e o Centrify.
Este guia inclui etapas para verificar a configuração do Ative Directory. No entanto, não se destina a fornecer instruções sobre como associar uma máquina a um domínio ao usar utilitários de terceiros.
Note
Para obter informações sobre como configurar o Ative Directory com versões mais recentes do Ubuntu, RHEL ou SLES, consulte Tutorial: Usar adutil para configurar a autenticação do Ative Directory com o SQL Server no Linux.
Pré-requisitos
Antes de configurar a autenticação do Active Directory, precisa de configurar um computador a correr o Windows Server como controlador de domínio Active Directory na sua rede. Depois junta-te ao host Linux que executa o SQL Server para um domínio Active Directory.
As etapas de exemplo descritas neste artigo são apenas para orientação e referem-se aos sistemas operacionais Ubuntu 16.04, Red Hat Enterprise Linux (RHEL) 7.x e SUSE Linux Enterprise Server (SLES) 12. Os passos reais podem variar ligeiramente dependendo do ambiente e da versão do sistema operativo. Por exemplo, o Ubuntu 18.04 usa netplan enquanto o RHEL 8.x usa nmcli , entre outras ferramentas, para gerir e configurar a rede. Você deve envolver seus administradores de sistema e domínio para seu ambiente para ferramentas específicas, configuração, personalização e qualquer solução de problemas necessária.
Note
A partir do SQL Server 2025 (17.x), o SUSE Linux Enterprise Server (SLES) não é suportado.
DNS reverso (rDNS)
Quando configura um computador com o Windows Server como controlador de domínio, poderá não ter uma zona rDNS por predefinição. Verifique se existe uma zona rDNS aplicável para o controlador de domínio e o endereço IP da máquina Linux que executará o SQL Server.
Assegura-te também de que existem registos PTR que apontam para os teus controladores de domínio.
Verificar a ligação a um controlador de domínio
Verifique se você pode entrar em contato com o controlador de domínio usando os nomes curtos e totalmente qualificados do domínio e usando o nome de host do controlador de domínio. O endereço IP do controlador de domínio também deve ser resolvido para o nome de domínio totalmente qualificado (FQDN) do controlador de domínio:
ping contoso
ping contoso.com
ping dc1.contoso.com
nslookup <IP address of dc1.contoso.com>
Tip
Este tutorial usa contoso.com e CONTOSO.COM como nomes de domínio e território de exemplo, respectivamente. Ele também usa DC1.CONTOSO.COM como o exemplo de nome de domínio totalmente qualificado do controlador de domínio. Você deve substituir esses nomes por seus próprios valores.
Para garantir a resolução adequada de nomes de domínio, é crucial atualizar o arquivo /etc/resolv.conf se forem encontradas discrepâncias durante as verificações de nome. O procedimento de atualização varia entre distribuições; Por isso, é aconselhável consultar a documentação oficial para uma orientação precisa. A lista a seguir fornece links para algumas distribuições e suas principais versões:
| Distribution | Artigo de referência |
|---|---|
| RHEL 8 | Configuração manual do /etc/resolv.conf |
| RHEL 9 | Configuração manual do /etc/resolv.conf |
| SLES 15 | Configurações de NETCONFIG_DNS_STATIC_SEARCHLIST e NETCONFIG_DNS_STATIC_SERVERS |
| Ubuntu | Secção de Resolução de Nomes |
O objetivo é configurar /etc/resolv.conf corretamente para sua distribuição para facilitar a resolução de nomes de domínio. Por exemplo, se o seu domínio for contoso.com e o endereço IP do Active Directory for 10.0.0.4, o /etc/resolv.conf deverá ser configurado de forma adequada para resolver nomes com sucesso a partir do host.
cat /etc/resolv.conf
Aqui está o conjunto de resultados.
# Generated by NetworkManager
search contoso.com com
nameserver 10.0.0.4
RHEL 7,x
Edite o arquivo
/etc/sysconfig/network-scripts/ifcfg-eth0para que seu domínio do Ative Directory esteja na lista de pesquisa de domínio. Ou edite outro arquivo de configuração de interface conforme apropriado:sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0A saída é semelhante ao exemplo a seguir:
PEERDNS=no DNS1=<Domain controller IP address> DOMAIN="contoso.com com"Depois de editar este ficheiro, reinicie o serviço de rede:
sudo systemctl restart networkAgora verifique se o arquivo
/etc/resolv.confcontém uma linha como o exemplo a seguir:sudo vi /etc/resolv.confA saída é semelhante ao exemplo a seguir:
search contoso.com com nameserver <Domain controller IP address>Se ainda não conseguir executar ping no controlador de domínio, localize o nome de domínio totalmente qualificado e o endereço IP do controlador de domínio. Um exemplo de nome de domínio é
DC1.CONTOSO.COM. Adicione a seguinte entrada a/etc/hosts:sudo vi /etc/hostsA saída é semelhante ao exemplo a seguir:
<IP address> DC1.CONTOSO.COM CONTOSO.COM CONTOSO
Ingressar no domínio do Ative Directory
Depois de verificar a configuração básica e a conectividade com o controlador de domínio, existem duas opções para ligar um host Linux que executa SQL Server ao domínio Active Directory:
- Opção 1: Usar um pacote SSSD
- Opção 2: Utilizar utilitários de fornecedores Active Directory de terceiros
Opção 1: Usar o pacote SSSD para ingressar no domínio do Ative Directory
Este método liga o host Linux que executa o SQL Server a um domínio Active Directory usando pacotes realmd e sssd.
Este é o método preferido de unir um host Linux a um controlador de domínio do Ative Directory.
Para obter as instruções mais atualizadas, consulte a documentação oficial fornecida pelos parceiros de distribuição.
| Distribution | Artigo de referência |
|---|---|
| RHEL 8 | Descobrir e ingressar em um domínio do AD usando o SSSD |
| RHEL 9 | Descobrir e ingressar em um domínio do AD usando o SSSD |
| SLES | Ingressando no Ative Directory usando a associação de domínio do Windows |
| Ubuntu | Como configurar o SSSD com o Ative Directory |
Utilize os seguintes passos para ligar a um host Linux que execute o SQL Server para um domínio Active Directory:
Usa o realmd para ligar a tua máquina anfitriã ao teu domínio Active Directory. Deve primeiro instalar tanto os pacotes cliente realmd como Kerberos no host Linux do SQL Server usando o gestor de pacotes da sua distribuição Linux:
Se a instalação do pacote do cliente Kerberos solicitar um nome de território, digite seu nome de domínio em maiúsculas.
Depois de confirmar que o DNS está configurado corretamente, ingresse no domínio executando o seguinte comando. Você deve autenticar usando uma conta do Ative Directory que tenha privilégios suficientes no Ative Directory para ingressar uma nova máquina no domínio. Este comando cria uma nova conta de computador no Ative Directory, cria o arquivo keytab do host
/etc/krb5.keytab, configura o domínio no/etc/sssd/sssd.confe atualiza/etc/krb5.conf.Devido a um problema com realmd, primeiro atribua ao nome de host da máquina o FQDN ao invés do nome da máquina. Caso contrário, realmd pode não criar todos os SPNs necessários para a máquina e as entradas DNS não serão atualizadas automaticamente, mesmo que o controlador de domínio ofereça suporte a atualizações dinâmicas de DNS.
sudo hostname <old hostname>.contoso.comDepois de executar esse comando, o arquivo
/etc/hostnamedeve conter<old hostname>.contoso.com.sudo realm join contoso.com -U 'user@CONTOSO.COM' -vVocê deve ver a mensagem,
Successfully enrolled machine in realm.A tabela a seguir lista algumas mensagens de erro que você pode receber e sugestões para resolvê-las:
Mensagem de erro Recommendation Necessary packages are not installedInstale esses pacotes usando o gerenciador de pacotes da sua distribuição Linux antes de executar o comando realm join novamente. Insufficient permissions to join the domainVerifique com um administrador de domínio se você tem permissões suficientes para unir máquinas Linux ao seu domínio. KDC reply did not match expectationsTalvez você não tenha especificado o nome de território correto para o usuário. Os nomes dos domínios fazem distinção entre maiúsculas e minúsculas, são geralmente escritos em maiúsculas e podem ser identificados com o comando realm discover contoso.com.O SQL Server usa SSSD e NSS para mapear contas de usuário e grupos para identificadores de segurança (SIDs). O SSSD deve ser configurado e executado para que o SQL Server crie logons do Ative Directory com êxito. realmd geralmente faz isso automaticamente como parte da adesão ao domínio, mas, em alguns casos, você deve fazer isso separadamente.
Para obter mais informações, consulte como configurar o SSSD manualmentee configurar o NSS para funcionar com o SSSD.
Verifique se agora você pode coletar informações sobre um usuário do domínio e se pode adquirir um tíquete Kerberos como esse usuário. O exemplo a seguir usa os comandos id, kinite klist para isso.
Use
idpara confirmar que o SSSD consegue resolver as pertenças de utilizadores e grupos do domínio:id user@contoso.comO resultado deve mostrar o ID de utilizador do domínio, ID de grupo e pertenças a grupos:
uid=1348601103(user@contoso.com) gid=1348600513(domain group@contoso.com) groups=1348600513(domain group@contoso.com)Use
kinitpara solicitar um ticket Kerberos para o utilizador do domínio:kinit user@CONTOSO.COMO comando deve pedir a palavra-passe do utilizador do domínio:
Password for user@CONTOSO.COM:Use
klistpara verificar o bilhete Kerberos:klistA saída deve identificar o utilizador do domínio como principal predefinido:
Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: user@CONTOSO.COMSe
id user@contoso.comretornar,No such user, certifique-se de que o serviço SSSD foi iniciado com êxito executando o comandosudo systemctl status sssd. Se o serviço estiver em execução e ainda se visualizar o erro, tente habilitar o registo detalhado para o SSSD. Para obter mais informações, consulte a documentação da Red Hat para solução de problemas de SSSD.Se
kinit user@CONTOSO.COMretornar,KDC reply didn't match expectations while getting initial credentials, certifique-se de especificar o domínio em maiúsculas.
Para mais informações, consulte a documentação da Red Hat sobre Descobrir e juntar-se a um Domínio AD usando SSSD.
Opção 2: Utilizar utilitários de fornecedores Active Directory de terceiros
Você pode usar utilitários de terceiros, como PBIS, VASou Centrify. Este artigo não cobre passos para cada utilitário específico. Tem primeiro de utilizar uma destas utilidades para associar ao domínio o anfitrião Linux que executa o SQL Server antes de continuar.
O SQL Server não utiliza código ou bibliotecas de integradores terceiros para quaisquer consultas relacionadas com o Active Directory. O SQL Server sempre consulta o Ative Directory usando chamadas de biblioteca OpenLDAP diretamente nesta configuração. Os integradores de terceiros são usados apenas para ligar o host Linux a um domínio Active Directory, e o SQL Server não tem qualquer comunicação direta com estas utilidades.
Importante
Consulte as recomendações para usar a opção de configuração mssql-conf network.disablesssd na seção Opções de configuração adicionais do artigo Usar a autenticação do Ative Directory com o SQL Server no Linux.
Verifique se o /etc/krb5.conf está configurado corretamente. Para a maioria dos provedores do Ative Directory de terceiros, essa configuração é feita automaticamente. No entanto, verifique /etc/krb5.conf para os seguintes valores para evitar problemas futuros.
sudo vi /etc/krb5.conf
A saída é semelhante ao exemplo a seguir:
[libdefaults]
default_realm = CONTOSO.COM
[realms]
CONTOSO.COM = {
}
[domain_realm]
contoso.com = CONTOSO.COM
.contoso.com = CONTOSO.COM
Verifique se o DNS reverso está configurado corretamente
O comando a seguir deve retornar o nome de domínio totalmente qualificado (FQDN) do host que executa o SQL Server. Um exemplo é SqlHost.contoso.com.
host <IP address of SQL Server host>
A saída deste comando deve ser semelhante a <reversed IP address>.in-addr.arpa domain name pointer SqlHost.contoso.com. Se este comando não devolver o FQDN do seu anfitrião, ou se o FQDN estiver incorreto, adicione uma entrada DNS reversa para o host Linux que executa o SQL Server ao seu servidor DNS.
Passo seguinte
Neste artigo, configurou um host Linux que executa o SQL Server com autenticação Active Directory. Para concluir a configuração do SQL Server no Linux para oferecer suporte a contas do Ative Directory, siga estas instruções.