mysql密码安全策略


密码复杂度校验

MySQL5.6.6版本之后增加了密码强度验证插件validate_password.

-- 查看插件是否安装
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS  WHERE PLUGIN_NAME LIKE 'validate_password';
+-------------------+---------------+
| PLUGIN_NAME       | PLUGIN_STATUS |
+-------------------+---------------+
| validate_password | ACTIVE        |
+-------------------+---------------+
1 row in set

-- 如果没有安装
INSTALL PLUGIN validate_password SONAME 'validate_password.so';

-- 卸载
UNINSTALL PLUGIN 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      |
+--------------------------------------+--------+
参数名 说明
validate_password_check_user_name 用户名检测,设置为ON的时候表示能将密码设置成当前用户名
validate_password_dictionary_file 字典文件
validate_password_length 密码的长度要求
validate_password_mixed_case_count 密码中至少有1个大写小字母
validate_password_number_count 密码中至少1个数字
validate_password_policy 密码的安全策略,参数可选值:MEDIUMLOWSTRONG. LOW:策略仅测试密码长度。MEDIUM:策略添加了密码必须至少包含数字、大小写和特殊字符的条件。STRONG:策略除了MEDIUM外,还不能匹配字典文件中的字词.
validate_password_special_char_count 密码中至少1个特殊字符
-- 密码规范测试,评分达到100才能使用
select VALIDATE_PASSWORD_STRENGTH('123456');

-- 另一种方法测试
mysql> select password('1234');
mysql> select password('1234#Qsss');
+-------------------------------------------+
| password('1234#Qsss')                     |
+-------------------------------------------+
| *F7BE83BBADD1FA159B1028170433FE7CBA5C0D01 |
+-------------------------------------------+
1 row in set

字典文件的使用:

  1. 设置策略为STRONG
    set global validate_password_policy=STRONG;
  2. 创建字典文件
    [root@ ~]# cat /tmp/validate_password_dictionary_file 
    admin 
    root 
    love 
    password 
  3. 配置字典文件路径
    ```sql

– 配置
mysql> set global validate_password_dictionary_file=”/tmp/validate_password_dictionary_file”;
Query OK, 0 rows affected (0.00 sec)
– 查看
mysql> SHOW STATUS LIKE ‘validate%’;

> 在`MySQL 5.7.8`之前,服务器运行时对字典文件的更改需要重新启动才能使服务器识别更改; 而在`5.7.9`后可动态设置并生效


### 密码过期
```bash
[mysqld]
# 设置默认过期时间,单位天,默认永不过期0
default_password_lifetime=90
# 默认ON,密码过期会断开连接
disconnect_on_expired_password=ON
-- 运行时修改, 重启失效
SET GLOBAL default_password_lifetime = 90;
-- 针对特定用户设置过期策略
ALTER USER 'user'@'localhost' PASSWORD EXPIRE;
ALTER USER 'user'@'localhost' PASSWORD EXPIRE INTERVAL 30 DAY;
ALTER USER 'user'@'localhost' PASSWORD EXPIRE NEVER;
ALTER USER 'user'@'localhost' PASSWORD EXPIRE DEFAULT;

账户锁定

-- 5.7.8版本之后,新增锁定账户功能
CREATE USER 'furrywall'@'localhost' IDENTIFIED BY '71m32ch4n6317' ACCOUNT LOCK;
ALTER USER 'furrywall'@'localhost' ACCOUNT LOCK;
ALTER USER 'furrywall'@'localhost' ACCOUNT UNLOCK;

参考链接


文章作者: wuzhiyong
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 wuzhiyong !
评论
 上一篇
linux常用运维工具 linux常用运维工具
查看CPU# 最常使用命令 top # vmstat 命令报告关于线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息 vmstat # 2秒一次刷新5次 vmstat 2 5 -w 查看磁盘# 安装 yum install syssta
2020-08-21
下一篇 
loki持久化 loki持久化
查看配置# 查看helm安装Loki默认配置 [root@master ~]# helm inspect values loki/loki > loki.yaml [root@master ~]# cat loki.yaml # 部分配置
2020-08-18
  目录