设置和修改MySQL密码参数validate_password
场景
根据root用户创建travel_agency数据库。 其目的是创建新用户,并仅向该用户发布travel_agency数据库,而不是其他数据库
过程
在所有ip上创建开放的用户sx
ceate user ' xx ' @ ' % ' identified by ' xx @2';
仅sx用户打开travel_agency数据库,并更新权限以启用许可证
grantallprivilegeson ` travel _ agency `.* to ' sx ' @ ' % ' withgrantoption;
flush权限;
REVOKE . ON . FROM 'xxx'@'xxx ';
@前面是用户名,@后面是受限主机,%表示无处不在。 (注意:这里%的版本不包含本地,遇到此问题可以添加另一个localhost用户。)
删除用户:
DOP user‘xx’@ ' xx’;
but
在默认配置中执行第一步时,将报告1819个问题,即密码不符合规范
介绍默认配置
从MySQL 5.7版开始,缺省情况下安装了validate_password插件,可控制最低密码要求
首先,检查未更改的状态,即默认状态
mysqlshowvariableslike ' validate _ password % ';
-------------请参阅
variable _ name
-------------请参阅
| validate _ password _ check _ user _ name >
| validate _ password _ dictionary _文件| |
| validate_password_length | 8 |
| validate _ password _ mixed _ case _ count|1 |
| validate _ password _ number _ count|1 |
validate _ password _ policy
| validate _ password _ special _ char _ count|1 |
-------------请参阅
7 rows inset (0.01秒)。
常用:
validate_password_policy :安全强度,默认值为中,即1,必须包含数字、符号、大小写,长度不得小于8位
validate_password_length :密码的最小长度
validate _ password _ mixed _ case _ count :至少n对大小写,即2*n个
validate_password_number_count :最小数字数
validate _ password _ special _ char _ count :最小符号数
不常用:
validate _ password _ check _ user _ name :检测用户名、检测有无重复
validate _ password _ dictionary _ file :词典文件。 启动后,必须设置要使用的词典的所有规则,才能满足密码条件
解决方案of 1819
我们调整相关参数即可(使用SET GLOBAL ) ),以便使用xx@2的密码。
.
set全局validate _ password _ mixed _ case _ count=0;
如果更改为-0对,则大小写不是必需的
set全局validate _ password _ length=2;
最终
mysqlshowvariableslike ' validate _ password % ';
-------------请参阅
variable _ name
-------------请参阅
| validate _ password _ check _ user _ name >
| validate _ password _ dictionary _文件| |
| validate_password_length | 2 |
| validate _ password _ mixed _ case _ count|0 |
| validate _ password _ number _ count|1 |
validate _ password _ policy
| validate _ password _ special _ char _ count|1 |
-------------请参阅
7 rows inset (0.00秒) )。
自动增大的validate_password_length
validate_password_length会根据其他设置自动增大,计算公式如下
密码的最小长度=数字的最小长度与最小长度2* (大小写的最小对数)匹配
验证如下。
ysqlsetglobalvalidate _ password _ length=2;
查询确定,0Rowsaffected(0.00sec ) )。
mysqlshowvariableslike ' validate _ password % ';
-------------请参阅
variable _ name
-------------请参阅
| validate _ password _ check _ user _ name >
| validate _ password _ dictionary _文件| |
| validate_password_length | 2 |
| validate _ password _ mixed _ case _ count|0 |
| validate _ password _ number _ count|1 |
validate _ password _ policy
| validate _ password _ special _ char _ count|1 |
-------------请参阅
7 rows inset (0.00秒) )。
mysqlsetglobalvalidate _ password _ mixed _ case _ count=1;
查询确定,0Rowsaffected(0.00sec ) )。
mysqlshowvariableslike ' validate _ password % ';
-------------请参阅
variable _ name
-------------请参阅
| validate _ password _ check _ user _ name >
| validate _ password _ dictionary _文件| |
| validate_password_length | 4 |
| validate _ password _ mixed _ case _ count|1 |
| validate _ password _ number _ count|1 |
validate _ password _ policy
| validate _ password _ special _ char _ count|1 |
-------------请参阅
7 rows inset (0.00秒) )。