Criação de usuários no MySQL 5.7

Mencionei no post anterior sobre as opções integradas ao gerenciamento de usuários no MySQL 5.7, e acredite se quiser, esta versão disponibilizou uma opção para um lock nos usuários, sem precisar fazer qualquer outro tipo de manobra para isso.

A sintaxe para criação permanece a mesma, porém a primeira novidade é que com a integração do plugin “validate_password”, você consegue definir uma senha mais segura para cada usuário, respeitando sempre uma politica.

Por padrão, o nível de segurança da senha vem como médio:

Onde:

validate_password_length – Comprimento ou quantidade de caracteres que a senha deve conter;
validate_password_mixed_case_count – Variação entre caracteres em maiúsculo e minusculo;
validate_password_number_count – Quantidade de números que deve conter a senha;
validate_password_policy – O nível de politica da senha, que pode ser como (LOW, MEDIUM and STRONG);
validate_password_special_char_count – Quantidade de caracteres especiais na senha;

Vamos a um exemplo de criação sem respeitar a politica de senha Media:

Já respeitando as normas:

Outra opção é a possibilidade de estabelecer um prazo para que uma senha seja expirada. Segue abaixo as opções:

PASSWORD EXPIRE – Ao logar, o usuário terá que altera a sua senha, pois não ira conseguir realizar alguma operação.

PASSWORD EXPIRE DEFAULT – Através de uma variável, você define um prazo global para que o usuário altere a senha. O valor padrão é de:

PASSWORD EXPIRE NEVER – Como o próprio nome já diz, a senha do usuário nunca será alterada.

PASSWORD EXPIRE INTERVAL N DAY – Você fornece um intervalo de dias para a expiração da senha.

Vamos a um exemplo de criação de usuário já com a senha expirada:

Podemos observar que é possível efetuar o login, porém enquanto você não alterar a senha, praticamente você não consegue fazer nada com este usuário, como listar as bases, realizar selects, entre outros.

Logado com o usuário, a alteração de senha pode ser efetuada da seguinte forma:

Apenas para ressaltar, sim, você tem que respeitar também a politica de senha para gerar esta senha. Agora, caso você opte por criar um usuário com um limite pré definido, existe uma forma de verificar os valores setados:

Uma opção que é simples, mas que o MySQL devia até hoje é o lock de um usuário. Isso vai ajudar muito empresas que trabalham com um alto numero de bases MySQL, juntamente ao seu controle.

As opções são:

ACCOUNT LOCK
ACCOUNT UNLOCK

Vamos a um exemplo:

\0/

Caso queira habilitar o acesso novamente, basta executar o:

Fontes:

https://dev.mysql.com/doc/mysql-em-plugin/en/myoem-config-metric-passwordvalidation-category.html
https://dev.mysql.com/doc/refman/5.7/en/validate-password-plugin.html
http://dev.mysql.com/doc/refman/5.7/en/create-user.html
http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_default_password_lifetime


É isso ai pessoal.

Dúvidas, criticas ou sugestões? Fiquem a vontade, todo retorno é construtivo 🙂

Jose Wilson

Deixe uma resposta