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 MEDIUMLength; numeric, lowercase/uppercase, and special characters

2 or STRONGLength; 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.密码生成技巧

mysql5.7的资源限制策略_MySQL-5.7密码策略及用户资源限制相关推荐

  1. centos7设置密码策略_Linux系统设置复杂密码策略方法总结

    假设你已经在你的 Linux 系统上使用了 PAM (Pluggable Authentication Modules,插入式验证模块),因为这些年所有的 Linux 发行版都在使用它. 一.准备工作 ...

  2. win10家庭版新增策略组及关闭密码策略

    首先我们打开记事本,并输入以下内容(注意空格): @echo offpushd "%~dp0"dir /b C:\Windows\servicing\Packages\Micros ...

  3. 计算机配置策略为灰色,windows2008 密码策略为灰色的解决方法

    windows2008 密码策略为灰色的情况一般发生在该系统升级成为域控制器了. 组策略分为两种:本地组策略和域组策略. 本地组策略 本地组策略是指应用于本机,且设定后只会在本机起作用的策略,运行的方 ...

  4. mysql设计资源目录售卖_MySQL目录设计一些策略_mysql

    前言 索引加快了检索的速度,但是却降低了数据列里插入.删除以及修改数值的速度.也就是说,索引降低了许多涉及写入的操作速度.之所以出现这种情况,是由于写入一条数据不仅仅是要写入到数据行,还需要所有的索引 ...

  5. mysql索引设计策略_MySQL索引设计一些策略

    前言 索引加快了检索的速度,但是却降低了数据列里插入.删除以及修改数值的速度.也就是说,索引降低了许多涉及写入的操作速度.之所以出现这种情况,是由于写入一条数据不仅仅是要写入到数据行,还需要所有的索引 ...

  6. mysql数据库恢复策略_MySQL 备份和恢复策略(一)

    在数据库表丢失或损坏的情况下,备份你的数据库是很重要的.如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态.本文主要对MyISAM表做备份恢复. 备份策略一:直接拷贝数据 ...

  7. linux 密码策略设置,设置Linux密码策略

    /etc/login.defs PASS_MAX_DAYS   99999     #密码的最大有效期, 99999:永久有期 PASS_MIN_DAYS   0          #是否可修改密码, ...

  8. mysql用户权限重置_mysql中重置密码与新用户权限分配的方法介绍

    本篇文章给大家带来的内容是关于mysql中重置密码与新用户权限分配的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一.重置root密码 1.修改配置文件,免密登陆 输入命令 ...

  9. mysql 策略_MySQL 密码策略

    MySQL密码策略 MySQL 初始化时,使用临时密码,修改自定义密码时,由于自定义密码比较简单,就出现了不符合密码策略的问题. 密码策略问题异常信息: ERROR 1819 (HY000): You ...

  10. 修改mysql密码级别_mysql修改密码策略

    关于这个问题是在 < 基于MySQL Yum存储库在Linux-7.2上安装MySQL-5.7.21数据库服务(实战篇) > 时遇到的问题,这是 mysql 初始化时,使用临时密码,修改自 ...

最新文章

  1. MySQL-BETWEEN AND范围查询问题
  2. 正则爬取京东商品信息并打包成.exe可执行程序。
  3. Net平台下的分布式缓存设计
  4. Zend Studio 8.0.1 官方汉化包安装 解决文本中文乱码
  5. python题库刷题训练软件_刷题 -- python计算器练习题
  6. java多线程遇到的问题_关于Java多线程遇到的问题.
  7. python爬pdf的曲线_科学网—Python爬PDF - 胡鹏程的博文
  8. jQuery延迟对象deferred的使用
  9. 在Java中避免NullPointerException
  10. SQL 宝典(本人总结供学习使用)
  11. 封校大学生无聊玩起图像大找茬——游戏脚本(一起领略Python脚本的风采吧)
  12. 3dsmax模型导入超图
  13. slk文件转换器安卓版_【更新】手机QQ、微信语音读取转换工具【sik\amr格式转mp3】...
  14. 非线性最小二乘求解方法详解
  15. mq选型:rocketMq和kafka对比
  16. Java中IDEA报错 “cannot access xxx“的解决办法
  17. php+xls加密,POI Excel xlsx加密
  18. 全国大学生“高教杯”成图大赛——如何绘制锥度斜度
  19. Android安装包APK如何解压
  20. 输入两个质数的乘积,求乘数中较大的那个质数

热门文章

  1. java string输入_怎么让Java获取用户输入的字符串
  2. 【bug记录】android:Program type already present: android.support.v4.app.INotificationSideChannel
  3. std::recursive_mutex嵌套锁/递归锁
  4. Android开发之设置Dialog外部页透明的方法亲测可用
  5. Linux加法简单程序,Android应用程序的开发目录——简单的加法计算示例
  6. php数组foreach循环添加键值对_在PHP的foreach循环中插入一个$key作为变量
  7. FJUT3703 这还是一道数论题(二分 + hash + manacher 或者 STL + hash 或者 后缀数组 + hash)题解...
  8. 5G时代即将来临,三大运营商各自为营谁能抢占先机?
  9. javaWEB学习之filter
  10. 条码软件调用ERP系统