zoukankan      html  css  js  c++  java
  • MySQL如何启用密码强度审计【转】

    1.密码验证插件安装

    要使服务器可以使用,插件库文件必须位于MySQL插件目录(plugin_dir系统变量指定的目录)中。如有必要,请设置plugin_dir服务器启动时的值, 以告知服务器插件目录位置。

    插件库文件基本名称是 validate_password。文件名后缀因平台.so而异(例如,对于Unix和类Unix系统,.dll对于Windows)。

    要在服务器启动时加载插件,请使用该 --plugin-load-add选项命名包含它的库文件。使用此插件加载方法,每次服务器启动时都必须提供该选项。例如,将这些行放在服务器my.cnf文件中(.so根据需要调整平台的 后缀):

    [mysqld]
    plugin-load-add=validate_password.so


    修改后my.cnf,重新启动服务器以使新设置生效。

    或者,要在运行时注册插件,请使用此语句(.so根据需要调整后缀):

    INSTALL PLUGIN validate_password SONAME 'validate_password.so';

    INSTALL PLUGIN加载插件,并将其注册到mysql.plugins 系统表中,以便为每个后续的正常服务器启动加载插件。

    要验证插件安装,请检查 INFORMATION_SCHEMA.PLUGINS表或使用该SHOW PLUGINS语句

        mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
               FROM INFORMATION_SCHEMA.PLUGINS
               WHERE PLUGIN_NAME LIKE 'validate%';
        +-------------------+---------------+
        | PLUGIN_NAME       | PLUGIN_STATUS |
        +-------------------+---------------+
        | validate_password | ACTIVE        |
        +-------------------+---------------+


    如果插件无法初始化,请检查服务器错误日志以获取诊断消息。

    如果插件先前已注册 INSTALL PLUGIN或已加载 --plugin-load-add,您可以使用--validate-password服务器启动时的选项来控制插件激活。例如,要在启动时加载插件并防止在运行时删除它,请使用以下选项:

    [mysqld]
    plugin-load-add=validate_password.so
    validate-password=FORCE_PLUS_PERMANENT


    1) 先查看mysql全局参数配置

    该问题其实与mysql的validate_password_policy的值有关。

    查看一下msyql密码相关的几个全局参数:

        mysql> select @@validate_password_policy;
         
        +----------------------------+
         
        | @@validate_password_policy |
         
        +----------------------------+
         
        | MEDIUM |
         
        +----------------------------+
         
        1 row in set (0.00 sec)
         
         
        mysql> SHOW VARIABLES LIKE 'validate_password%';
         
        +--------------------------------------+--------+
         
        | Variable_name | Value |
         
        +--------------------------------------+--------+
         
        | 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 |
         
        +--------------------------------------+--------+
         
        6 rows in set (0.08 sec)



    2)参数解释

        validate_password_dictionary_file
         
        插件用于验证密码强度的字典文件路径。
         
         
        validate_password_length
         
        密码最小长度,参数默认为8,它有最小值的限制,最小值为:validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
         
         
        validate_password_mixed_case_count
         
        密码至少要包含的小写字母个数和大写字母个数。
         
         
        validate_password_number_count
         
        密码至少要包含的数字个数。
         
         
        validate_password_policy
         
        密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。有以下取值:
         
        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
         
        默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
         
         
        validate_password_special_char_count
         
        密码至少要包含的特殊字符数。



    3)修改mysql参数配置
    改变密码策略,修改简单密码

        mysql> set global validate_password_policy=0;
         
        Query OK, 0 rows affected (0.05 sec)
        mysql> set global validate_password_mixed_case_count=0;
         
        Query OK, 0 rows affected (0.00 sec)
        mysql> set global validate_password_number_count=0;
         
        Query OK, 0 rows affected (0.00 sec)
        mysql> set global validate_password_special_char_count=0;
         
        Query OK, 0 rows affected (0.00 sec)
        mysql> set global validate_password_length=4;
         
        Query OK, 0 rows affected (0.00 sec)
        mysql> SHOW VARIABLES LIKE 'validate_password%';
         
        +--------------------------------------+-------+
         
        | Variable_name | Value |
         
        +--------------------------------------+-------+
         
        | validate_password_dictionary_file | |
         
        | validate_password_length | 4 |
         
        | validate_password_mixed_case_count | 0 |
         
        | validate_password_number_count | 0 |
         
        | validate_password_policy | LOW |
         
        | validate_password_special_char_count | 0 |
         
        +--------------------------------------+-------+
         
        6 rows in set (0.00 sec)


    4)修改简单密码:

        mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
         
        Query OK, 0 rows affected, 1 warning (0.00 sec)

    转自

    ---------------------
    作者:背锅浩
    来源:CSDN
    原文:https://blog.csdn.net/weixin_39845407/article/details/81736882
    版权声明:本文为博主原创文章,转载请附上博文链接!

    以下转自

    MySQL如何启用密码强度审计_ITPUB博客 http://blog.itpub.net/15498/viewspace-2135382/

    执行以下命令安装密码强度审计插件:

    mysql>INSTALL PLUGIN validate_password SONAME 'validate_password.so';

    设置最强密码策略:
    mysql> set global validate_password_policy=strong;
    Query OK, 0 rows affected (0.00 sec)

    或者通过配置文件my.cnf添加部分密码强度相关参数:

    [mysqld]
    
    plugin-load=validate_password.so
    validate_password_policy=2
    validate-password=FORCE_PLUS_PERMANENT
    
    然后执行show plugins命令查看是否启用成功:
    mysql> show plugins;
    +----------------------------+----------+--------------------+----------------------+---------+
    | Name                       | Status   | Type               | Library              | License |
    +----------------------------+----------+--------------------+----------------------+---------+
    | validate_password          | ACTIVE   | VALIDATE PASSWORD  | validate_password.so | GPL     |
    +----------------------------+----------+--------------------+----------------------+---------+

    设置后的密码强度审计相关参数如下:

    mysql> show global variables like 'validate%';
    +--------------------------------------+--------+
    | Variable_name                        | Value  |
    +--------------------------------------+--------+
    | 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      |
    +--------------------------------------+--------+
    6 rows in set (0.00 sec)

    --修改密码,不符合规则会报错

    mysql> SET PASSWORD = PASSWORD('123456');  
    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    
    mysql> SET PASSWORD = PASSWORD('aisino123!');
    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements


    修改成功,大小写加数字和特殊字符最少1个,密码长度最少8位:

    mysql> SET PASSWORD = PASSWORD('Aisino123!');  --大小写字码加数字和特殊字符,最少8位
    Query OK, 0 rows affected (0.00 sec)


    相关参数解释如下:

    validate_password_policy 这个参数用于控制validate_password的验证策略 0-->low  1-->MEDIUM  2-->strong。
    validate_password_length密码长度的最小值(这个值最小要是4)。
    validate_password_number_count 密码中数字的最小个数。
    validate_password_mixed_case_count大小写的最小个数。
    validate_password_special_char_count 特殊字符的最小个数。
    validate_password_dictionary_file 字典文件(插件用于验证密码强度的字典文件路径)
  • 相关阅读:
    Linux之文件处理命令
    Linux基础命令
    rip实验
    Linux基础之磁盘分区
    mysql安装
    centos Apache、php、mysql默认安装路径
    You probably tried to upload too large file. Please refer to documentation for ways to workaround this limit.
    Wrong permissions on configuration file, should not be world writable!
    机器会学习么 学习总结
    实验 5 Spark SQL 编程初级实践
  • 原文地址:https://www.cnblogs.com/paul8339/p/10150429.html
Copyright © 2011-2022 走看看