Explicação detalhada do cenário da nova política de senha do MySQL 8.0

Este artigo da comunidade técnica, " Novos recursos | Detalhes suplementares da nova política de senha do MySQL 8.0 ", explica alguns cenários detalhados da nova política de senha do banco de dados MySQL 8.0, com os quais vale a pena aprender.

Até agora, o MySQL 8.0 foi lançado para a versão 8.0.34. Após uma série de atualizações de versão, mais melhorias de senha foram feitas.

Este artigo faz principalmente algumas verificações e análises dos detalhes de uso de vários parâmetros relacionados a senhas e compartilha com você a experiência real de uso.Primeiro, vamos dar uma olhada em algumas das estruturas de sintaxe na sintaxe do MySQL versão   8.0 CREATE USER . password_option

-- MySQL 8.0(新增了不同维度的密码控制)
password_option: {
PASSWORD EXPIRE [DEFAULT | NEVER | INTERVAL N DAY]
| PASSWORD HISTORY {DEFAULT | N}
| PASSWORD REUSE INTERVAL {DEFAULT | N DAY}
| PASSWORD REQUIRE CURRENT [DEFAULT | OPTIONAL]
| FAILED_LOGIN_ATTEMPTS N
| PASSWORD_LOCK_TIME {N | UNBOUNDED}
}

-- MySQL 5.7(只包含密码过期属性配置)
password_option: {
PASSWORD EXPIRE
| PASSWORD EXPIRE DEFAULT
| PASSWORD EXPIRE NEVER
| PASSWORD EXPIRE INTERVAL N DAY
}

CREATE USER Entre eles , os primeiros quatro atributos de senha da sintaxe da versão MySQL 8.0  são os primeiros detalhes discutidos neste artigo.Os parâmetros globais do MySQL e os significados correspondentes aos seus atributos são:

nome do parâmetro valor padrão Campos correspondentes da tabela mysql.user significado
default_password_lifetime 0 senha_lifetime Período de validade da senha definido globalmente
histórico_de_senha 0 senha_reuse_history Defina globalmente o número de senhas históricas que não podem ser reutilizadas.
senha_reuse_interval 0 senha_reuse_time Defina globalmente quanto tempo leva para que as senhas históricas sejam reutilizadas
senha_require_atual DESLIGADO senha_require_atual Você precisa fornecer a senha atual ao alterar a senha nas configurações globais?

Mito 1

mysql.user O significado quando o campo correspondente das opções relacionadas à senha na tabela  é NULL.

Processo de verificação

Definimos valores específicos com base nesses quatro atributos de senha. Após a definição, a configuração fica conforme mostrado na figura abaixo.

d32db6c92a6dec44cb350443f7f18046.png

Crie um novo usuário sem especificar nenhum atributo de senha do usuário.

335101158f6532b0d586d47e0ab9f21a.png

Após a criação do usuário,  mysql.user os valores exibidos nos campos correspondentes na tabela de visualização são todos NULL.

As quatro propriedades configuradas globalmente não estão funcionando?

Se entrar em vigor, deverá ser configurado automaticamente com o valor correspondente ao criar um usuário. O entendimento baseado nesta lógica também leva a outra camada de mal-entendido: o atributo global de senha recém-configurado não entra em vigor para usuários criados historicamente.

ALTER USER Ainda precisamos processar os usuários existentes  separadamente?

Quanto mais penso nessa questão, mais errada ela se torna. Se a configuração global não entrar em vigor quando um novo usuário for criado, quando ela entrará em vigor? Não seria sem sentido?  Obtive a resposta depois de verificar mais detalhadamente a descrição do significado dos valores dos campos correspondentes no documento  oficial  [1] . mysql.userA descrição original é a seguinte, traduzida como: Se esses quatro valores forem NULL na tabela, isso não significa que a configuração não entrou em vigor, mas significa que ela herda a configuração da política de senha global.

de1552bb3cf7c10f57afa9c32db41000.png

Portanto , não li os documentos oficiais com atenção suficiente e entendi mal o significado do valor NULL ( o principal motivo ), mas é realmente fácil pisar neste "poço". Aqui também é postada a tabela de correspondência efetiva de parâmetros globais e configuração de atributos de usuário único para referência.

2e67a6ec4a83cd246ceb0c45cd3d93e2.png
Recomenda-se usar o PC para visualizar

Mito 2

Embora aqui seja descrito como um mal-entendido, na verdade deve ser entendido que a descrição do documento é imperfeita. Vamos primeiro dar uma olhada na descrição do documento. A tradução é: Você pode usar esses dois parâmetros para controlar a política de reutilização de senhas históricas: um é baseado na política de número de vezes e o outro é baseado na política de tempo . Pode ser configurado ao mesmo tempo, por exemplo: proibindo o uso das últimas 6 senhas ou senhas definidas em 365 dias.Você pode ver que os dois parâmetros são uma lógica OR.

d49923cc847fec56d1b20f6889c9f4be.png

Cenário de verificação real

cena 1

password_history > 0 e password_reuse_interval = 0

Conclusão: A política de controle histórico de contagem de senhas  é eficaz e está de acordo com as expectativas.

Cena 2

password_history = 0 e password_reuse_interval > 0

Conclusão: A política de controle de tempo de senha histórica  é eficaz e está em linha com as expectativas.

Cena 3

password_history > 0 e password_reuse_interval > 0

Conclusão: A política de controle de tempo de senha histórica  entra em vigor, mas a política de controle de tempo de senha histórica  não entra em vigor. mysql.password_history registrará todas as senhas dentro do tempo especificado e não poderá ser reutilizada.

Portanto ,

  • password_reuse_interval A estratégia de controle por tempo tem prioridade maior que  password_history o controle por tempos.

    • Os dois não entram em vigor ao mesmo tempo. Quando dois parâmetros são configurados ao mesmo tempo, a configuração mais rigorosa será usada como política efetiva.

  • As políticas essencialmente não têm impacto no uso e na funcionalidade.

  • Referências

  • [1]

    tabelas de concessão:  https://dev.mysql.com/doc/refman/8.0/en/grant-tables.html

Se você acha que este artigo é útil, sinta-se à vontade para clicar em "Curtir" e "Leitura" no final do artigo ou encaminhá-lo diretamente para pyq,

0733dd5201fd1a6bea60045485f503a2.png

Artigos atualizados recentemente:

" Solução de problemas e caminhos de solução para vários cenários de vazamento de dados "

" Alguns problemas encontrados recentemente "

" Conhecimento Financeiro - Negociação Quantitativa "

" Classificação e Indexação de 1.300 Artigos de Contas Públicas "

" Estatísticas de 1.300 artigos sobre contas públicas "

Artigos quentes recentes:

" Recomende um artigo clássico sobre Oracle RAC Cache Fusion "

" O choque que o código aberto do jogo "Red Alert" nos traz "

Classificação e indexação dos artigos:

" Classificação e Indexação de 1.200 Artigos de Contas Públicas "

Acho que você gosta

Origin blog.csdn.net/bisal/article/details/132867401
Recomendado
Clasificación