Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server no Linux
Com base nas melhores práticas de segurança da sua organização, pode ser necessário alterar a senha regularmente da conta do Active Directory do Windows fornecida como network.privilegedadaccount em mssql.conf, ou de qualquer outra conta que tenha os nomes de entidade de serviço (SPNs) do serviço SQL Server. O método com suporte para alterar a senha da conta está documentado neste artigo. A alteração de senha entra em vigor sem a necessidade de reiniciar o serviço SQL Server no Linux.
A adutil ferramenta é usada para atualizar o keytab. O adutil comando deve ser executado em um computador ingressado no domínio. Para obter mais informações sobre adutil e como baixar a ferramenta, consulte Introdução ao adutil utilitário de Active Directory.
É essencial atualizar a nova senha no keytab com o próximo número kvno antes de atualizá-la no Active Directory. Usar o próximo número kvno impede que o serviço SQL Server precise ser reiniciado após a alteração de senha. Se você atualizar primeiro a senha no Active Directory e alterar o keytab, deverá reiniciar o serviço SQL Server para garantir que a autenticação do Active Directory funcione corretamente.
Cenário para girar o keytab
Vamos considerar um exemplo. A autenticação do Active Directory já está habilitada no SQL Server em Linux. No arquivo mssql.conf, você define network.privilegedadaccount como sqluser. A conta sqluser@CONTOSO.COM já foi criada no Active Directory e o keytab também foi criado no local padrão /var/opt/mssql/secrets/mssql.keytab. Agora convém alterar a senha do sqluser@CONTOSO.COM. Aqui estão as etapas que você precisa seguir:
Instale o Adutil na máquina unida ao domínio.
Obtenha ou renove o TGT (bilhete de concessão de tíquetes) do Kerberos usando o comando
kinit. Use uma conta com privilégios para o comandokinit. A conta precisa ter permissão para se conectar ao domínio e deve ser capaz de criar contas e SPNs no domínio. Neste caso, estamos usando a contaprivilegeduser@CONTOSO.COMque tem permissões para criar contas e SPNs em nosso domínio chamadoCONTOSO.COM.kinit privilegeduser@CONTOSO.COMDepois de executar
kinitpara obter/renovar o TGT, consulte o número atual de kvno donetwork.privilegedadaccount. Nesse caso, usesqluser@CONTOSO.COM.kvno sqluser@CONTOSO.COM
Você pode optar por girar o keytab com mssql-conf ou girar o keytab manualmente usando adutil.
Girar o keytab com mssql-conf
Você pode instalar adutil e integrá-lo a mssql-conf, o que significa que você pode fazer o rodízio de keytab usando mssql-conf.
Entre como o usuário raiz e troque para o usuário
mssql.su mssqlObtenha ou renove o TGT (bilhete de concessão de tíquetes) do Kerberos usando o comando
kinit. Use uma conta com privilégios para o comandokinit. A conta precisa ter permissão para se conectar ao domínio e deve ser capaz de criar contas e SPNs no domínio. Neste caso, estamos usando a contaprivilegeduser@CONTOSO.COMque tem permissões para criar contas e SPNs em nosso domínio chamadoCONTOSO.COM.kinit privilegeduser@CONTOSO.COMExecute o comando
mssql-conf, fornecendo o keytab do SQL Server e os detalhes donetwork.privilegedadaccount. Neste exemplo,privilegedadaccountésqluser../mssql-conf setup-ad-keytab /var/opt/mssql/secrets/mssql.keytab sqluser --use-next-kvnoQuando solicitado a fornecer uma senha, insira uma nova senha que você pretende usar. A opção
--use-next-kvnoaloca o kvno atual + 1.Opcional: você também pode usar a opção
--kvnocom o comandomssql-conf setup-ad-keytabpara fornecer um kvno específico. Você deve assegurar-se de obter o kvno atual para o usuário primeiro, e então atualizar o novo kvno de forma adequada, que será o kvno atual + 1.Você pode listar as chaves do keytab usando o comando:
klist -kte /var/opt/mssql/secrets/mssql.keytabVocê notará que o keytab é atualizado com o próximo kvno para as entradas de usuário e SPN.
Agora você precisa mudar a senha para o usuário
sqluser. Veja um exemplo.Importante
Se for solicitado reiniciar o SQL Server durante esta etapa, você poderá ignorar isso. Lembre-se também de alterar a senha no Active Directory.
bash-4.4$ kinit privilegeduser@CONTOSO.COM Password for privilegeduser@CONTOSO.COM: bash-4.4$ ./mssql-conf setup-ad-keytab /var/opt/mssql/secrets/mssql.keytab sqluser --use-next-kvno sqluser@contoso.com's password: Confirm sqluser@contoso.com's password: SQL Server needs to be restarted in order to adopt the new AD configuration. To restart, run `systemctl restart mssql-server.service`. bash-4.4$ klist -kte /var/opt/mssql/secrets/mssql.keytab Keytab name: FILE:/var/opt/mssql/secrets/mssql.keytab KVNO Timestamp Principal ---- ------------------- ------------------------------------------------------ 4 12/30/2021 14:02:08 sqluser@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1.contoso.com:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1.contoso.com@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1@CONTOSO.COM (aes256-cts-hmac-sha1-96) 5 12/30/2021 20:06:34 sqluser@CONTOSO.COM (aes256-cts-hmac-sha1-96) 5 12/30/2021 20:06:34 MSSQLSvc/sql1.contoso.com:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 5 12/30/2021 20:06:34 MSSQLSvc/sql1.contoso.com@CONTOSO.COM (aes256-cts-hmac-sha1-96) 5 12/30/2021 20:06:34 MSSQLSvc/sql1:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 5 12/30/2021 20:06:34 MSSQLSvc/sql1@CONTOSO.COM (aes256-cts-hmac-sha1-96)
Gire o keytab manualmente com adutil
Se você quiser atualizar o keytab manualmente usando adutil, consulte as etapas a seguir.
Atualizar o keytab usando adutil adiciona uma entrada ao keytab atual. Por exemplo, se o número de kvno do comando anterior for 2, use o número de kvno3 ao atualizar o keytab. A seguir estão os adutil comandos que você precisa executar.
- Altere o número da porta (
-p), o nome do host (-H), o caminho para keytab (-k) e o número kvno para corresponder ao seu ambiente.
adutil keytab createauto -k /var/opt/mssql/secrets/mssql.keytab -p 1433 -H mssql.contoso.com --password '<newpassword>' -s MSSQLSvc --kvno 3
adutil keytab create -k /var/opt/mssql/secrets/mssql.keytab -p sqluser --password '<newpassword>' --kvno 3
| Parâmetro | Description |
|---|---|
-k |
O caminho para a keytab atual que está sendo usado pelo SQL Server e definido usando a opção network.kerberoskeytabfile no arquivo mssql.conf. |
-H |
O nome de domínio totalmente qualificado do host do SQL Server. |
-p |
A porta que o serviço SQL Server está configurado para escutar no primeiro comando. No segundo comando, -p representa a network.privilegedadaccount para a qual você vai atualizar a senha. |
--kvno |
O valor precisa ser o kvno atual + 1. O valor kvno atual é obtido na etapa 3. |
Depois de executar os comandos acima, você deverá fornecer sua escolha de tipo de criptografia para as entradas keytab. Certifique-se de escolher a correta para o seu ambiente.
Verifique as entradas do keytab
Após atualizar o keytab, agora você deverá ver entradas para os novos e os anteriores valores de kvno para a mesma conta sqluser@CONTOSO.COM e os SPNs. Você pode executar o seguinte comando klist para verificar as entradas no keytab:
klist -kte /var/opt/mssql/secrets/mssql.keytab
Alterar a senha da conta no Active Directory
A última etapa é atualizar a senha da network.privilegedadaccount ou da conta que possui os SPNs do SQL Server no Windows Active Directory. No cenário anterior, teremos que atualizar a senha para o sqluser@CONTOSO.COM no Active Directory. Altere a senha para a mesma nova senha que você forneceu ao atualizar o keytab. A autenticação do Active Directory deve continuar a funcionar e sem a necessidade de reiniciar o serviço SQL Server.
Conteúdo relacionado
- Tutorial: usar o adutil para configurar a autenticação do Active Directory com o SQL Server no Linux
- Tutorial: Configurar a autenticação do Active Directory com contêineres do SQL Server em Linux
- Noções básicas sobre a autenticação do Active Directory para SQL Server no Linux e em contêineres
- Solucionar problemas de autenticação do Active Directory para SQL Server no Linux e em contêineres