Menu fechado

MySQL forçar usuário a trocar a senha

Desde a versão 5.6.6 MySQL introduziu o habilidade the forcar usuários a trocar suas senhas.
Tu pode fazer isso digitando ALTER USER PASSWORD EXPIRE.

ALTER USER 'marcelo'@'localhost' PASSWORD EXPIRE;

Na próxima vez que marcelo tentar conectar ao MySQL via localhost, o servidor ira bloquear todos os comandos até que o usuario use SET PASSWORD;

mysql> \s
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

Para alterar a senha, e utilizar o server normalmente, basta digitar:

SET PASSWORD = PASSWORD('senha');
#Ou utilizando o hash gerado por SELECT PASSWORD('senha');
SET PASSWORD = '*AD77F56D2FD78299B87609DCC0423260B5AADB03';

Mas tome cuidado, se tu marcar a senha de um usuário como expirada, ele não poderá conectar via clientes com versão anterior a 5.6.10:

ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.

Peter Zaitsev escreveu sobre isso em um de seus posts, em algumas instalações via RPM, o MySQL seta uma senha temporario para o usuario root e te forca a trocar ela no proximo login.

Mais informações podem ser encontradas em MySQL Password Expiration Documentation e MySQL ALTER USER Documentation

Gostou ? Ajude e Compartilhe!