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, talvez seja necessário alterar a senha regularmente para a conta do Active Directory do Windows fornecida como network.privilegedadaccount no mssql.conf, ou em qualquer outra conta que possua os nomes principais de serviço (SPN) para o 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 Introduction to adutil - Active Directory utility.
É 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 conectada 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, verifique o número kvno atual 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 o componente adutil e integrá-lo com o sistema mssql-conf, o que significa que você pode rotacionar a keytab usando mssql-conf.
Entre como o usuário raiz e troque para o usuário
mssql.su mssqlObtenha ou renove o TGT (vale de concessão de ingresso) 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-kvno'Quando solicitado a fornecer uma senha, insira uma nova senha que você pretende usar. A opção
--use-next-kvnoaloca o atual kvno + 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ê observará que o keytab é atualizado com o próximo kvno tanto para as entradas de usuário quanto para as de 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 privilegedaccount@CONTOSO.COM Password for privilegedaccount@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)
Girar 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 kvno do comando anterior for 2, use o número 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 o 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 na qual o serviço do SQL Server está configurado, no primeiro comando, para escutar. 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
Depois de atualizar o keytab, você deverá ver agora as entradas no keytab para o kvno 3 (novo) e também para o kvno 2 (antigo) referentes à mesma conta sqluser@CONTOSO.COM e aos 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 do <newpassword> para aquela que você forneceu na etapa 3 na seção anterior. 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