No ano passado, a função microsoft.sql.server do Ansible foi incluída no Red Hat Enterprise Linux (RHEL). Com o lançamento do RHEL 8.8 e 9.2, essa função recebeu uma atualização com várias funcionalidades novas:
- Configuração de autenticação do SQL Server com o servidor do Active Directory.
- Recursos de gerenciamento expandidos para grupos de disponibilidade contínua, incluindo suporte para configuração de réplicas de disponibilidade assíncrona e para configuração de clusters de escala de leitura contínua.
- Configuração e gerenciamento do SQL Server 2022 no RHEL 8 e RHEL 9.
Este artigo aborda a integração com o Active Directory (AD) e guia você por todo o processo:
- Certificar-se de que você atende aos requisitos para configurar a autenticação do AD para o SQL Server
- Preparar um arquivo de inventário do Ansible
- Explorar as variáveis que você deve definir e preparar um arquivo de playbook do Ansible usando a função para configurar automaticamente a autenticação com o Active Directory
- Executar a função
- Concluir a configuração
- Verificar se a autenticação está funcionando conforme o esperado
Pré-requisitos
Antes de começar, você deve garantir que atende aos pré-requisitos para a função.
- Você precisa ter um servidor do Active Directory em execução e acessível pela sua máquina RHEL. Você pode ler a visão geral dos pré-requisitos na documentação da Microsoft em Join SQL Server on a Linux host to an Active Directory domain. Se você tiver problemas para atender aos pré-requisitos, consulte a página de solução de problemas do Active Directory.
- Certifique-se de que a pesquisa do DNS está funcionando. Você deve conseguir localizar o servidor do Active Directory pelo endereço IP e os nomes do DNS completos e abreviados a partir da sua máquina RHEL.
- Certifique-se de que a pesquisa inversa do DNS está funcionando. A execução do comando
nslookup
para o endereço IP do servidor do Active Directory precisa resultar no nome do DNS correto, e o nome do DNS deve, por sua vez, resultar no endereço IP correto. - Certifique-se de que você tem acesso e credenciais de usuário do Active Directory com permissão para criar contas e nomes de entidades de serviço (SPNs) no domínio.
Prepare o inventário do Ansible
O inventário deve conter apenas os servidores do RHEL que você deseja configurar para autenticação do Active Directory. Este exemplo usa o arquivo de inventário inventory.yml
, que contém apenas um nó do RHEL rhel-sql-server.example.com
:
$ cat inventory.yml
---
all:
hosts:
rhel-sql-server.example.com
Use a função
Em seguida, você precisa de um playbook para configurar a autenticação com o Active Directory. É mais fácil fazer isso após examinar um playbook de exemplo, ajustar variáveis e parâmetros conforme necessário e usá-lo como base para o seu próprio playbook.
Observe que a função exige que algumas senhas sejam definidas com variáveis. Os exemplos neste artigo oferecem essas variáveis em texto simples, mas na produção você precisa usar o Ansible Vault para criptografar as senhas.
Playbook de exemplo
Veja o playbook de exemplo salvo como playbook.yml
. Ele configura a autenticação com o Active Directory:
---
- name: Configure with AD server authentication
hosts: all
vars:
# General variables
mssql_accept_microsoft_odbc_driver_17_for_sql_server_eula: true
mssql_accept_microsoft_cli_utilities_for_sql_server_eula: true
mssql_accept_microsoft_sql_server_standard_eula: true
mssql_version: 2022
mssql_password: "p@55w0rD"
mssql_edition: Evaluation
mssql_manage_firewall: true
# AD Integration required variables
mssql_ad_configure: true
mssql_ad_sql_user_name: sqluser
mssql_ad_sql_password: "p@55w0rD1"
ad_integration_realm: domain.com
ad_integration_user: Administrator
ad_integration_password: Secret123
# AD Integration optional variables
mssql_ad_sql_user_dn: "CN=sqluser,CN=Users,DC=DOMAIN,DC=COM"
mssql_ad_netbios_name: domain
As variáveis no playbook de exemplo são divididas em três seções: gerais, obrigatórias e opcionais.
Variáveis gerais
As variáveis que aceitam o Contrato de licença de usuário final (EULA) devem ser definidas como true
para confirmar que você concorda com os termos do pacote mssql-server
. Entre elas estão:
mssql_accept_microsoft_odbc_driver_17_for_sql_server_eula
mssql_accept_microsoft_cli_utilities_for_sql_server_eula
mssql_accept_microsoft_sql_server_standard_eula
Outras variáveis:
mssql_version
define a versão (2017, 2019 ou 2022) do SQL Server que você deseja gerenciar.mssql_password
define a senha para o usuáriosa
.mssql_edition
define a edição a ser configurada para o SQL Server.mssql_manage_firewall
habilita o firewall e abre as portas necessárias. Essa é uma variável opcional. Use-a somente se quiser que a função gerencie o firewall para você.
Variáveis obrigatórias para a integração com o AD
Estas variáveis são obrigatórias:
mssql_ad_configure
: se a autenticação do Active Directory deve ser configurada.mssql_ad_sql_user_name
: nome do usuário a ser criado no servidor do Active Directory para habilitar a autenticação do SQL Server. A função usa o adutil, que exige que o usuário seja criado com permissão para acessá-la como usuário privilegiado.mssql_ad_sql_password
: senha para o usuário que está sendo criado.ad_integration_realm
: nome de realm do Active Directory.ad_integration_user
: nome de usuário do usuário privilegiado no Active Directory. Esse usuário já deve existir no domínio.ad_integration_password
: senha para o usuário.
Variáveis opcionais para a integração com o AD
Estas variáveis são opcionais:
mssql_ad_sql_user_dn
: você deverá definir essa variável se o seu servidor do AD armazenar contas de usuário em uma unidade organizacional (OU) personalizada em vez de na OU Users padrão. Por padrão, a função cria o nome distinto com base nos valores fornecidos para as variáveismssql_ad_sql_user_name
ead_integration_realm
e usa a OUUsers
(por exemplo,CN=sqluser,CN=Users, DC=DOMAIN,DC=COM
). Você pode substituir isso disponibilizando um nome diferenciado.mssql_ad_netbios_name
: você deve definir essa variável quando o nome de domínio NetBIOS do seu servidor do AD não for igual ao primeiro subdomínio do nome de domínio fornecido com a variávelad_integration_realm
(por exemplo, você definiuad_integration_realm
paradomain.contoso.com
, mas o nome do seu domínio NetBIOS não édomain
). Esse valor é usado para criar o login{{ mssql_ad_netbios_name }}\{ad_integration_user }}
no SQL Server.
Execute a função do Ansible
Depois de garantir que atende a todos os pré-requisitos e que seu inventário e playbook do Ansible estão prontos, você pode executar o playbook.
$ ansible-playbook -i inventory.yml playbook.yml
Adicione usuários de domínio ao SQL Server
Antes que um usuário possa fazer login, você precisa adicioná-lo ao SQL Server. Para fazer isso, execute o seguinte comando T-SQL para cada usuário de domínio do AD:
CREATE LOGIN \[<domain>**<username>*\] FROM WINDOWS;
Como habilitar tipos adicionais de criptografia
Após executar a função para configurar a autenticação do Active Directory, você deve adicionar os tipos de criptografia Kerberos AES128 e AES256 ao usuário definido com a variável mssql_ad_sql_user_name
no Active Directory. Você pode fazer isso usando a IU da web do Active Directory ou o PowerShell.
IU da web
Abra a IU da web do seu servidor do AD e faça login.
- Acesse Tools > Active Directory Users and Computers > [domain] > Users > [sqluser] > Account
- Na lista Account options, selecione This account supports Kerberos AES 128 bit encryption e This account supports Kerberos AES 256 bit encryption
- Clique em Apply
PowerShell
No PowerShell, use o comando Set-ADUser
, substituindo <sqluser>
pelo nome de usuário que você definiu como a variável mssql_ad_sql_user_name
:
Set-ADUser -Identity <sqluser> -KerberosEncryptionType AES128,AES256
Verifique a autenticação com o Active Directory
Agora que você executou a função para configurar a autenticação do servidor do AD e adicionou os tipos de criptografia necessários ao seu usuário<sqluser>
, você pode fazer a autenticação usando um dos seguintes métodos:
- Windows ou RHEL: Azure Data Studio (ADS)
- Windows: SQL Server Management Studio (SSMS)
- RHEL: terminal Linux
Azure Data Studio (ADS)
Se você ainda não tiver instalado o ADS, consulte a documentação da Microsoft para fazer o download e instalar o Azure Data Studio.
Após instalado, inicie o ADS.
- Clique em Create a connection
- Na lista Authentication type, selecione Windows Authentication
- Preencha os outros campos e clique em Connect
Agora você pode usar o SQL Server.
SQL Server Management Studio (SSMS)
Primeiro, acesse o Windows com o usuário que você deseja usar para fazer login no SQL Server e, em seguida, inicie o SSMS.
- No painel Connect to Server, selecione Database Engine na lista Server type
- No campo Server name, insira o nome de domínio totalmente qualificado (FQDN) da instância do RHEL para a qual você executou a função
- Na lista Authentication, selecione Windows Authentication e preencha estes campos:
- Server type: Database Engine
- Server name: insira o nome do seu servidor
- Authentication: autenticação do Windows
- Clique em Connect
Terminal Linux
Para verificar a autenticação usando um terminal Linux, use SSH para acessar o servidor como o usuário criado pela função.
$ ssh -l <sqluser>@<domain.com> <client.domain.com>
Obtenha um ticket do Kerberos para o usuário do Active Directory que você deseja autenticar:
$ kinit <AD_user_name>@<DOMAIN.COM>
Use sqlcmd
para acessar o SQL Server e, por exemplo, executar uma consulta para obter o usuário atual:
/opt/mssql-tools/bin/sqlcmd -S. -Q 'SELECT SYSTEM_USER'
Conclusão
A função microsoft.sql.server pode ajudar você a automatizar a integração com o Active Directory para autenticação de usuários. Ela usa a função redhat.rhel_system_roles.ad_integration para se conectar ao Active Directory e redhat.rhel_system_roles.firewall para configurar o firewall, e faz isso de maneira consistente. A Red Hat oferece mais funções de sistema para gerenciar diferentes serviços e ferramentas no RHEL. Se você tiver interesse em automatizar seus fluxos de trabalho, consulte a lista de funções do sistema RHEL disponíveis e leia a documentação ou os posts relacionados ao tópico. Há muitas opções disponíveis!
Se quiser saber no que mais a função microsoft.sql.server pode ajudar você, consulte a documentação oficial.
Sobre o autor
Sergei Petrosian is a technical writer at Red Hat working on Satellite and Foreman documentation.
Navegue por canal
Automação
Últimas novidades em automação de TI para empresas de tecnologia, equipes e ambientes
Inteligência artificial
Descubra as atualizações nas plataformas que proporcionam aos clientes executar suas cargas de trabalho de IA em qualquer ambiente
Nuvem híbrida aberta
Veja como construímos um futuro mais flexível com a nuvem híbrida
Segurança
Veja as últimas novidades sobre como reduzimos riscos em ambientes e tecnologias
Edge computing
Saiba quais são as atualizações nas plataformas que simplificam as operações na borda
Infraestrutura
Saiba o que há de mais recente na plataforma Linux empresarial líder mundial
Aplicações
Conheça nossas soluções desenvolvidas para ajudar você a superar os desafios mais complexos de aplicações
Programas originais
Veja as histórias divertidas de criadores e líderes em tecnologia empresarial
Produtos
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Red Hat Cloud Services
- Veja todos os produtos
Ferramentas
- Treinamento e certificação
- Minha conta
- Suporte ao cliente
- Recursos para desenvolvedores
- Encontre um parceiro
- Red Hat Ecosystem Catalog
- Calculadora de valor Red Hat
- Documentação
Experimente, compre, venda
Comunicação
- Contate o setor de vendas
- Fale com o Atendimento ao Cliente
- Contate o setor de treinamento
- Redes sociais
Sobre a Red Hat
A Red Hat é a líder mundial em soluções empresariais open source como Linux, nuvem, containers e Kubernetes. Fornecemos soluções robustas que facilitam o trabalho em diversas plataformas e ambientes, do datacenter principal até a borda da rede.
Selecione um idioma
Red Hat legal and privacy links
- Sobre a Red Hat
- Oportunidades de emprego
- Eventos
- Escritórios
- Fale com a Red Hat
- Blog da Red Hat
- Diversidade, equidade e inclusão
- Cool Stuff Store
- Red Hat Summit