Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server em Linux
Com base nas práticas recomendadas de segurança da sua organização, poderá ser necessário mudar regularmente a palavra-passe para a conta do Windows Active Directory fornecida como network.privilegedadaccount no mssql.conf, ou qualquer outra conta que possua os nomes da entidade de serviço (SPN) para o serviço do SQL Server. O método suportado 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 ferramenta adutil é usada para atualizar o keytab. O comando adutil deve ser executado a partir de uma máquina associada ao domínio. Para obter mais informações sobre adutil e como baixar a ferramenta, consulte Introdução ao adutil - Ative Directory utility.
É fundamental atualizar a nova palavra-passe no keytab com o próximo número de kvno antes de atualizá-la no Active Directory. Usar o próximo número de kvno evita que o serviço do SQL Server precise ser reiniciado após a alteração da senha. Se você atualizar a senha no Ative Directory primeiro e, em seguida, alterar a keytab, deverá reiniciar o serviço do SQL Server para garantir que a autenticação do Ative Directory funcione corretamente.
Cenário para girar o keytab
Vamos considerar um exemplo. A autenticação do Ative Directory já está habilitada para o SQL Server no Linux. No arquivo mssql.conf, defina o network.privilegedadaccount como sqluser. A conta sqluser@CONTOSO.COM já foi criada no Ative Directory e o keytab também é criado no local padrão /var/opt/mssql/secrets/mssql.keytab. Agora você quer alterar a senha para o sqluser@CONTOSO.COM. Aqui estão os passos que você precisa seguir:
Instale o adutil na máquina associada ao domínio.
Obtenha ou renove o Kerberos TGT (tíquete de concessão de tíquetes) usando o comando
kinit. Use uma conta privilegiada 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. Nesse caso, estamos a usar a contaprivilegeduser@CONTOSO.COMque tem permissões para criar contas e SPNs no nosso domínio chamadoCONTOSO.COM.kinit privilegeduser@CONTOSO.COMDepois de executar
kinitpara obter/renovar o TGT, consulte o número de kvno atual do donetwork.privilegedadaccount. Neste caso, ésqluser@CONTOSO.COM.kvno sqluser@CONTOSO.COM
Você pode optar por girar o keytab com o mssql-confou girar keytab manualmente usando adutil.
Rode o keytab usando o mssql-conf
Você pode instalar adutil e integrá-lo com mssql-conf, o que significa que você pode girar o keytab usando mssql-conf.
Entre como o usuário root e alterne para o usuário
mssql.su mssqlObtenha ou renove o Kerberos TGT (tíquete de concessão de tíquetes) usando o comando
kinit. Use uma conta privilegiada 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. Nesse caso, estamos a usar a contaprivilegeduser@CONTOSO.COMque tem permissões para criar contas e SPNs no nosso domínio chamadoCONTOSO.COM.kinit privilegeduser@CONTOSO.COMExecute o comando mssql-conf, fornecendo o keytab do SQL Server e os
network.privilegedadaccountdetalhes. Neste exemplo, oprivilegedadaccountésqluser../mssql-conf setup-ad-keytab /var/opt/mssql/secrets/mssql.keytab sqluser --use-next-kvno'Quando lhe for solicitada uma palavra-passe, introduza uma nova palavra-passe que pretende utilizar. A opção
--use-next-kvnoaloca o kvno atual como + 1.opcional: Você também pode usar
--kvnoopção com o comandomssql-conf setup-ad-keytabpara fornecer uma específica kvno. Você deve garantir que você obtenha o kvno atual para o usuário primeiro e, em seguida, atualize o novo kvno de acordo, que seria o kvno atual + 1.Você pode listar as teclas do keytab usando o comando:
klist -kte /var/opt/mssql/secrets/mssql.keytabVocê notará que o keytab é atualizado com o próximo kvno tanto para as entradas do utilizador quanto para as do SPN.
Agora você pode alterar a senha do usuário
sqluser. Aqui está um exemplo.Importante
Se você for solicitado a reiniciar o SQL Server durante esta etapa, poderá ignorá-lo. Lembre-se de alterar a senha no Active Directory também.
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)
Rodar o keytab manualmente com adutil
Se você quiser atualizar o keytab manualmente usando adutil, consulte as etapas a seguir.
Atualizar a tabela de chaves utilizando adutil adiciona uma entrada à tabela de chaves atual. Por exemplo, se o número de kvno do comando anterior for 2, use o número de kvno 3 ao atualizar o keytab. As seguintes são os comandos adutil que 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á a ser utilizado pelo SQL Server e definido usando a opção network.kerberoskeytabfile no ficheiro mssql.conf. |
-H |
O nome de domínio totalmente qualificado do host SQL Server. |
-p |
A porta que o serviço SQL Server está configurado para escutar no primeiro comando. No segundo comando, -p representa o network.privilegedadaccount para o qual você vai atualizar a senha. |
kvno |
O valor tem de ser o kvno atual + 1. O valor atual kvno é obtido a partir da etapa 3. |
Depois de executar os comandos acima, você deve fornecer sua escolha de tipo de criptografia para as entradas keytab. Certifique-se de escolher o certo para o seu ambiente.
Verifique as entradas do keytab
Depois de atualizar o keytab, você verá as entradas no keytab para o kvno 3 (novo) e também kvno 2 (antigo) para o mesmo sqluser@CONTOSO.COM de conta e SPNs. Você pode executar o seguinte comando klist para verificar as entradas na tecla tab:
klist -kte /var/opt/mssql/secrets/mssql.keytab
Alterar a senha da conta no Ative Directory
A última etapa é atualizar a senha do network.privilegedadaccount ou da conta que possui os SPNs do SQL Server no Windows Ative Directory. No cenário anterior, temos que atualizar a senha para sqluser@CONTOSO.COM no Ative Directory. Altere a senha para o <newpassword> que você forneceu na etapa 3 na seção anterior. A autenticação do Ative Directory deve continuar a funcionar e sem a necessidade de reiniciar o serviço SQL Server.
Conteúdo relacionado
- Tutorial: Usar adutil para configurar a autenticação do Ative Directory com o SQL Server no Linux
- Tutorial: Configurar a autenticação do Ative Directory com o SQL Server em contêineres Linux
- Compreender a autenticação do Ative Directory para SQL Server no Linux e contêineres
- Solucionar problemas de autenticação do Ative Directory para SQL Server no Linux e contêineres