密码管理
MySQL8.0开始允许限制重复使用以前的密码
例如:
password - history = 3
它表示新密码不能和最近三次使用过的密码相同
password - reuse -interval = 90
它表示新密码不能和最近90天内使用过的密码相同
password - requie -corrent = ON
它默认是off,如果是ON,他表示修改密码时,需要当前用户的更正密码。
eg
查看相关的变量
show variables like 'password%'
如何启用上图密码的策略
方式一:修改配置文件
vi /etc/my.cf
设置全局变量
set global
这个命令的问题:只对当前进程有效,当服务器重启时,这个改变就会丢失
sht persist password - history = 6;
这个命令不存在上述问题
显示相关变量
show variables like 'password%';
方式二:
more /var/lib/mysql/mysqld - auto.cnf
通过用户级别设置
例:
alter user 'tony'@'%' password history 5;
通过表来查询
查询password - reuse - history参数
select user,host,password - reuse - history from mysql.user;
修改用户密码,改为重复的
alter user 'tony'@'%' indentified by 'Tony@2019';
查看密码历史记录的位置
desc mysql.password - history;
查看策略限制的效果
select * from mysql.password - history;
查看另一个参数,设置为ON
set persist password - require - current = ON;
修改密码
alter user 'tony'@'%' identified by 'Tony@2020'
注:当都是用root用户,可以直接修改这个密码
select user90
实际上这只是这个策略的一个例外。
当使用普通用户时
alter user user(),identified by 'Tony@2021';
他会提示提供当前密码后才能修改当前的用户密码
改为
alter user user() identified by 'Tony@2021' replace 'Tony@2020';
这样就不会提示错误。
网友评论