MySQL 5.7 密码策略-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

MySQL 5.7 密码策略

简介:

在MySQL 5.7版本中,用户密码策略分成低级LOW、中等MEDIUM和超强STRONG三种,推荐使用中等MEDIUM级别。


我们在安装MySQL的时候,会通过如下命令来设置用户密码策略:   

1
shell> mysql_secure_installation


使用如下命令查看现有的密码策略

1
mysql> SHOW VARIABLES LIKE 'validate_password%';


validate_password_number_count参数是密码中至少含有的数字个数,当密码策略是MEDIUM或以上时生效。

validate_password_special_char_count参数是密码中非英文数字等特殊字符的个数,当密码策略是MEDIUM或以上时生效。

validate_password_mixed_case_count参数是密码中英文字符大小写的个数,当密码策略是MEDIUM或以上时生效。

validate_password_length参数是密码的长度,这个参数由下面的公式生成

validate_password_number_count+ validate_password_special_char_count+ (2 * validate_password_mixed_case_count)

validate_password_dictionary_file参数是指定密码验证的字典文件路径。

validate_password_policy这个参数可以设为0、1、2,分别代表从低到高的密码强度,此参数的默认值为1,如果想将密码强度改弱,则更改此参数为0。


创建用户时报错:

1
mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY 'test';


ERROR 1819 (HY000): Your password does not satisfy the current policy requirements


报错原因:   
指定的密码没有符合现有的密码策略。


解决方法:   
可以按照现有策略设置密码,也可以更改密码策略。


① 按照现有密码策略指定密码

1
mysql>  CREATE USER 'test'@'localhost' IDENTIFIED BY 'System#2016';


Query OK, 0 rows affected (0.16 sec)


② 更改密码策略,降低密码的验证标准

--更改密码策略为LOW   

1
mysql> set global validate_password_policy=0;


Query OK, 0 rows affected (0.00 sec)

--更改密码长度   

1
mysql> set global validate_password_length=0;


Query OK, 0 rows affected (0.00 sec)

--密码最小长度为4   

1
2
mysql> SHOW VARIABLES LIKE 'validate_password%';
mysql> drop user 'test'@localhost;

Query OK, 0 rows affected (0.07 sec)

--创建长度为3的密码报错   

1
mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY 'tes';


ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

--创建长度为4的密码,4为现有密码策略的最小长度   

1
mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY 'test';


Query OK, 0 rows affected (0.01 sec)


MySQL 5.7修改密码


5.7版本的MYSQL的用户表的密码字段变了,不再是password字段,而是authentication_string字段。


然后改密码可以用:   

1
update mysql.user set authentication_string=password('密码'where user='root' and Host = 'localhost';


或者     

1
set password for 'root'@'localhost'=password('密码');













本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1924475 ,如需转载请自行联系原作者




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章
最新文章
相关文章