MySQL-5.7密码策略及用户资源限制
1.密码策略
在mysql 5.6对密码的强度进行了加强,推出了validate_password 插件。支持密码的强度要求。
(1)安装插件
[root@localhost ~]# ll /usr/local/mysql/lib/plugin/validate_password.so
-rwxr-xr-x 1 mysql mysql 204359 Sep 14 01:27 /usr/local/mysql/lib/plugin/validate_password.so
mysql> install plugin validate_password soname 'validate_password.so';
Query OK, 0 rows affected (0.11 sec)
mysql> show plugins;
+----------------------------+----------+--------------------+----------------------+---------+
| Name | Status | Type | Library | License |
+----------------------------+----------+--------------------+----------------------+---------+
| binlog | ACTIVE | STORAGE ENGINE | NULL | GPL |
| mysql_native_password | ACTIVE | AUTHENTICATION | NULL | GPL |
| sha256_password | ACTIVE | AUTHENTICATION | NULL | GPL |
.....................省略
| validate_password | ACTIVE | VALIDATE PASSWORD | validate_password.so | GPL |
+----------------------------+----------+--------------------+----------------------+---------+
45 rows in set (0.00 sec)
(2)添加配置
[root@localhost ~]# cat /etc/my.cnf
[mysqld]
datadir=/data1/mysql/data
plugin-load=validate_password.so
validate_password_policy=2
validate-password=FORCE_PLUS_PERMANENT
(3)检测配置
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | STRONG |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.02 sec)
mysql> set password=password('abc');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> set password=password('mysql2017');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> set password=password('mysql@)!&');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> set password=password('MY@)!&sql2017');
Query OK, 0 rows affected, 1 warning (0.00 sec)
2.策略详解
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | STRONG |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
说明:
validate-password=ON/OFF/FORCE/FORCE_PLUS_PERMANENT: 决定是否使用该插件(及强制/永久强制使用)。
validate_password_dictionary_file:插件用于验证密码强度的字典文件路径。
validate_password_length:密码最小长度。
validate_password_mixed_case_count:密码至少要包含的小写字母个数和大写字母个数。
validate_password_number_count:密码至少要包含的数字个数。
validate_password_policy:密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。
validate_password_special_char_count:密码至少要包含的特殊字符数。
关于validate_password_policy-密码强度检查等级:
Policy Tests Performed
0 or LOW Length
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file
3.用户资源限制
(1)max_user_connections
该参数作用是设置所有用户在同一时间连接MySQL实例的最大连接数限制。但这个参数无法对每个用户区别对待。
mysql> show global variables like '%max_user_connect%';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| max_user_connections | 0 |
+----------------------+-------+
1 row in set (0.00 sec)
mysql> set global max_user_connections=2;
Query OK, 0 rows affected (0.00 sec)
mysql> show global variables like '%max_user_connect%';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| max_user_connections | 2 |
+----------------------+-------+
1 row in set (0.00 sec)
(2)max_queries_per_hour
该参数设置一个用户在一小时内可以执行查询的次数(基本包含所有语句)。
(3)max_updates_per_hour
该参数设置一个用户在一小时内可以执行修改的次数(仅包含修改数据库或表的语句)。
(4)max_connections_per_hour
该参数设置一个用户在一小时内可以连接MySQL的时间。
从5.0.3版本开始,对用户‘test’@'%.test.com'的资源限制是指所有通过test.com域名主机连接test用户的连接,而不是分别指host1.test.com和host2.test.com主机过来的连接。
(5)设置用户资源限制
mysql> create user 'test1'@'localhost' identified by 'MYsql20!&'
-> with max_queries_per_hour 20
-> max_updates_per_hour 10
-> max_user_connections 2;
Query OK, 0 rows affected (0.00 sec)
mysql> alter user 'test1'@'localhost' with max_queries_per_hour 100;
Query OK, 0 rows affected (0.00 sec)
取消某项资源限制既把原先的值改成0.
当某个用户的max_user_connections非0时,则忽略全局系统参数对应的配置,反之则使用全局参数。
4.密码过期策略
mysql> show global variables like '%password%';
+---------------------------------------+--------+
| Variable_name | Value |
+---------------------------------------+--------+
| default_password_lifetime | 0 |
| disconnect_on_expired_password | ON |
| log_builtin_as_identified_by_password | OFF |
| mysql_native_password_proxy_users | OFF |
| old_passwords | 0 |
| report_password | |
| sha256_password_proxy_users | OFF |
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | STRONG |
| validate_password_special_char_count | 1 |
+---------------------------------------+--------+
14 rows in set (0.01 sec)
说明:
1)default_password_lifetime
设置所有用户密码过期时间,0为永不过期;
若为单独用户设置了密码过期策略,则会覆盖该参数;
alter user 'test3'@'localhost' password expire interval 90 day;
alter user 'test3'@'localhost' password expire never; (永不过期)
alter user 'test3'@'localhost' password expire default; (默认过期策略)
2)手动强制过期
alter user 'test3'@'localhost' password expire;
5.用户lock机制
通过执行create user/alter user命令中带account lock/unlock子句设置用户的lock状态;
默认创建用户是unlock状态;
mysql> create user abc2@localhost identified by 'MY20sql!&' account lock;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
[root@localhost ~]# mysql -uabc2 -p
Enter password:
ERROR 3118 (HY000): Access denied for user 'abc2'@'localhost'. Account is locked.
mysql> alter user 'abc2'@'localhost' account unlock;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
[root@localhost ~]# mysql -uabc2 -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
6.密码生成技巧
https://suijimimashengcheng.51240.com/

MySQL-5.7密码策略及用户资源限制的更多相关文章
- 数据库 (二):MySQL密码策略与用户管理
为了加强安全性,MySQL5.7为root用户随机生成了一个密码可通过# grep "password" /var/log/mysqld.log 命令获取MySQL的临时密码用该密 ...
- Mysql 5.7 密码策略 ERROR 1819 (HY000)
Mysql 5.7 默认对用户密码有密码强度要求,如果指定弱密码,会提示如下: ERROR (HY000): Your password does not satisfy the current po ...
- mysql 5.7密码策略和安装密码校验插件validate_password
当执行sql:SHOW VARIABLES LIKE 'validate_password%';提示empty,说明没有安装密码插件 1.查看当前mysql安装的插件信息 mysql> show ...
- ubuntu18.04安装mysql以及重置密码创建新用户
1.安装mysqlsudo apt-get install mysql-serversudo apt-get install mysql-clientsudo apt-get install libm ...
- Linux环境下MySQL的安装、密码策略、忘记密码后的破解及用户授权等。
mysql安装.用户密码.密码策略.授权用户等(mysql5.7版本) 1.mysql安装后相关目录与文件: 主配置文件: /etc/my.cnf 数据库目录: /var/lib/mysql/ 默认端 ...
- 略过 Mysql 5.7的密码策略
之前从mysql 5.6的时候,mysql 还没有密码策略这个东东,所以我们每个用户的密码都可以随心所欲地设置,什么123 ,abc 这些,甚至你搞个空格,那也是OK的. 而mysql.user 表里 ...
- Linux用户密码策略
使用Linux快三年了,从未想过Linux用户密码策略,从未把一本Linux的书从头看到尾(上学时的教材除外),故不知书上有无介绍,直到最近参加公司的信息安全稽核会议后才开始考虑Linux用户密码策略 ...
- mysql5.7用户密码策略问题
密码策略问题 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 查看 mysql 初 ...
- 【Mac系统】之Mysql数据库遇到修改数字密码的问题(SQL语法错误:ERROR 1064 (42000),密码策略等问题:ERROR 1819 (HY000))
安装完Mysql也进行了第一次初始化密码以及修改密码规则(请参考文章),但是我想后续再改密码,出现了下面几个问题: #SQL语句错误问题 ERROR 1064 (42000): You have an ...
随机推荐
- HtmlEncode
String.prototype.toHtmlEncode = function() { var str = this; str=str.replace("&"," ...
- MAC Ruby版本需要升级至2.2.2以上
第一例: 默认情况下,Mac OS X 系统已经安装好 Ruby(最新的 Mavericks 随机的 Ruby 版本为 2.0.0p247),安装在 /System/Library/Framework ...
- 【Python】GUI 练习1--利率计算器
import sys from PyQt4.QtCore import * from PyQt4.QtGui import * class Form(QDialog): def __init__(se ...
- Java反射基础(二)
获取域 1. 通过反射API可以获取到类中公开的静态域和对象中的实例域.得到表示域的java.lang.reflect.Field类的对象之后,就可以获取和设置域的值. 与获取构造方法类似,Cla ...
- 马普尔小姐探案集S02E03【熙阳岭的疑云】
--Why the husband love his wife so much? --Because she was the last one in their family.
- poj 3414(简单bfs)
题目链接:http://poj.org/problem?id=3414 思路:bfs简单应用,增对瓶A或者瓶B进行分析就可以了,一共6种状态. #include<iostream> #in ...
- cocos3.x 实现android沉浸式模式(全屏,隐藏导航栏即虚拟键)
只有在Android 4.4及以上系统才支持沉浸式模式,修改 AppActivity代码如下: @Override public Cocos2dxGLSurfaceView onCreateView( ...
- IIS7发布wcf服务遇到的问题
如果没有上图所列出的asp.net 40,请在cmd中运行:C:\Windows\Microsoft.NET\Framework\V4.0.30319\aspnet_regiis -i 注:C:\Wi ...
- Linux文档编辑 vim
- C#中对文件的操作小结
1.建立一个文本文件 public class FileClass { public static void Main() { WriteToFile(); } static void WriteTo ...