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.
Crie um novo usuário sem especificar nenhum atributo de senha do usuário.
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.user
A 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.
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.
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.
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 quepassword_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,
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 "