zoukankan      html  css  js  c++  java
  • MySQL 密码参数配置与修改 validate_password

    MySQL 密码参数配置与修改 validate_password

    该文章匹配解决MySQL Error中的1819问题

     

    场景

    通过root用户创建travel_agency数据库,目标是,新建一个用户然后对仅对该用户开放travel_agency数据库而非其他数据库

     

    过程

    • 创建对所有ip开放的用户sx

      CEATE USER 'xx'@'%' IDENTIFIED BY 'xx@2';
      
    • 仅对sx用户开放travel_agency数据库,并刷新权限使授权生效

      GRANT ALL PRIVILEGES ON `travel_agency`.* TO 'sx'@'%' WITH GRANT OPTION;
      FLUSH PRIVILEGES;
      

      回收可以使用 REVOKE ... ON ... FROM 'xxx'@'xxx';

      @前面为用户名,@后面接限制的主机,%表示任何地方。(注意:这里%有的版本不包括本地,遇到这个问题再加一个localhost的用户就可以)

      删除用户:

      DROP USER ‘xx’@'xx';

     

    but

    在默认配置下进行第一步时会报出1819问题,说密码不符合规范

     

    默认配置的介绍

    在mysql5.7版本后已经默认安装validate_password插件,该插件可以控制密码的最低要求

    我们先查询未改动的状态,即默认状态

    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             | MEDIUM |
    | validate_password_special_char_count | 1      |
    +--------------------------------------+--------+
    7 rows in set (0.01 sec)
    

    常用:

    • 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:字典文件,启动后必须要满组所使用字典的规则才能满足密码的条件

     

    Solution of 1819

    我们为了可以使用xx@2的密码,对相关参数做出调整即可(使用SET GLOBAL

    ...
    set global validate_password_mixed_case_count=0;
    -- 改为0对就不会强制要求必须有大小写
    set global validate_password_length=2;
    

    最终改为

    mysql> show variables like 'validate_password%';
    +--------------------------------------+-------+
    | Variable_name                        | Value |
    +--------------------------------------+-------+
    | validate_password_check_user_name    | OFF   |
    | validate_password_dictionary_file    |       |
    | validate_password_length             | 2     |
    | validate_password_mixed_case_count   | 0     |
    | validate_password_number_count       | 1     |
    | validate_password_policy             | LOW   |
    | validate_password_special_char_count | 1     |
    +--------------------------------------+-------+
    7 rows in set (0.00 sec)
    

     

    自动增大的validate_password_length

    validate_password_length会根据其他设定进行自动增大,计算公式为

    密码最小长度=数字最小长度+符合最小长度+2*(大小写最小对数)
    

    验证如下:

    ysql> set global validate_password_length=2;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> show variables like 'validate_password%';
    +--------------------------------------+-------+
    | Variable_name                        | Value |
    +--------------------------------------+-------+
    | validate_password_check_user_name    | OFF   |
    | validate_password_dictionary_file    |       |
    | validate_password_length             | 2     |
    | validate_password_mixed_case_count   | 0     |
    | validate_password_number_count       | 1     |
    | validate_password_policy             | LOW   |
    | validate_password_special_char_count | 1     |
    +--------------------------------------+-------+
    7 rows in set (0.00 sec)
    
    mysql> set global validate_password_mixed_case_count=1;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> show variables like 'validate_password%';
    +--------------------------------------+-------+
    | Variable_name                        | Value |
    +--------------------------------------+-------+
    | validate_password_check_user_name    | OFF   |
    | validate_password_dictionary_file    |       |
    | validate_password_length             | 4     |
    | validate_password_mixed_case_count   | 1     |
    | validate_password_number_count       | 1     |
    | validate_password_policy             | LOW   |
    | validate_password_special_char_count | 1     |
    +--------------------------------------+-------+
    7 rows in set (0.00 sec)
    

     

  • 相关阅读:
    redis在Linux的下载和安装
    redis 安装启动及设置密码windows
    Lambda学习---方法引用和其他基本应用
    Lambda学习---StreamApi使用
    java对象的访问定位
    java对象是如何创建的
    通过“减少内存”的方式解决内存溢出的问题
    springmvc配置中,mapper一直依赖注入不进去的问题记录
    为什么要简化代码书写
    压力测试工具
  • 原文地址:https://www.cnblogs.com/G-Aurora/p/13322129.html
Copyright © 2011-2022 走看看