日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MYSQL5.7设置账号密码复杂度、密码有效期、账号锁定等策略

發布時間:2023/12/15 数据库 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MYSQL5.7设置账号密码复杂度、密码有效期、账号锁定等策略 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、設置密碼復雜度

①[root@localhost tmp]# mysql -uroot -p

②.測試修改密碼

mysql>alter user 'root'@'localhost' identified by 'cnbi123';

③.查看一下當前修改后的密碼策略,如果沒有需要啟動安全插件

mysql> SHOW VARIABLES LIKE "%password%";

④.啟動安全插件

首先打開/etc/my.cnf,然后在[mysqld]的下方加入如下代碼:
plugin-load-add=validate_password.so

validate-password=FORCE_PLUS_PERMANENT

重啟mysqld服務

[root@localhost tmp]# systemctl restart mysqld.service

⑤.登錄

[root@localhost tmp]# mysql -uroot -p

⑥.查看一下當前修改后的密碼策略

mysql> SHOW VARIABLES LIKE "%password%";

⑦.設置強密碼策略,啟動插件默認是強密碼,下面是說明參數不用設置

參數說明:

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

默認是1,即MEDIUM,所以剛開始設置的密碼必須符合長度,且必須含有數字,小寫或大寫字母,特殊字符。

如果不想設置那么復雜,比如指向設置root密碼為1234,設置方式:

首先,修改validate_password_policy參數的值

mysql> set global validate_password_policy=0;

Query OK, 0 rows affected (0.00 sec)

這樣,判斷密碼的標準就基于密碼的長度了。這個由validate_password_length參數來決定。

mysql> select @@validate_password_length;

+----------------------------+

| @@validate_password_length |

+----------------------------+

| ?????????????????????????8 |

+----------------------------+

1 row in set (0.00 sec)

validate_password_length參數默認為8,它有最小值的限制,最小值為:

validate_password_number_count

+ validate_password_special_char_count

+ (2 * validate_password_mixed_case_count)

其中:

validate_password_number_count

#指定了密碼中數據的長度,

validate_password_special_char_count

#指定了密碼中特殊字符的長度,

validate_password_mixed_case_count

#指定了密碼中大小字母的長度。

這些參數,默認值均為1,所以validate_password_length最小值為4,如果你顯性指定validate_password_length的值小于4,盡管不會報錯,但validate_password_length的值將設為4。如下所示:

mysql> select @@validate_password_length;

+----------------------------+

| @@validate_password_length |

+----------------------------+

| ?????????????????????????8 |

+----------------------------+

1 row in set (0.00 sec)

mysql> set global validate_password_length=1;

Query OK, 0 rows affected (0.00 sec)

mysql> select @@validate_password_length;

+----------------------------+

| @@validate_password_length |

+----------------------------+

| ?????????????????????????4 |

+----------------------------+

1 row in set (0.00 sec)

如果修改了validate_password_number_count,validate_password_special_char_count,validate_password_mixed_case_count中任何一個值,則validate_password_length將進行動態修改。

mysql> select @@validate_password_length;

+----------------------------+

| @@validate_password_length |

+----------------------------+

| ?????????????????????????4 |

+----------------------------+

1 row in set (0.00 sec)

mysql> select @@validate_password_mixed_case_count;

+--------------------------------------+

| @@validate_password_mixed_case_count |

+--------------------------------------+

| ???????????????????????????????????1 |

+--------------------------------------+

1 row in set (0.00 sec)

mysql> set global validate_password_mixed_case_count=2;

Query OK, 0 rows affected (0.00 sec)

mysql> select @@validate_password_mixed_case_count;

+--------------------------------------+

| @@validate_password_mixed_case_count |

+--------------------------------------+

| ???????????????????????????????????2 |

+--------------------------------------+

1 row in set (0.00 sec)

mysql> select @@validate_password_length;

+----------------------------+

| @@validate_password_length |

+----------------------------+

| ?????????????????????????6 |

+----------------------------+

1 row in set (0.00 sec)

二、設置密碼90天過期

#設置全局密碼過期時間default_password_lifetime,單位為天

①首先打開/etc/my.cnf,然后在[mysqld]的下方加入如下代碼:?

[mysqld]

default_password_lifetime=90

②重啟mysqld服務

[root@localhost tmp]# systemctl restart mysqld.service

③登錄mysql查看

mysql> SHOW VARIABLES LIKE "%password%";

#default_password_lifetime=0 時默認密碼用不過期

除全局配置外,也可以創建用戶時指定密碼過期時間

①#創建用戶test_passwd并設置密碼過期時間為90天

mysql> CREATE USER 'test_passwd'@'localhost' identified by 'Atest_passwd123' PASSWORD EXPIRE INTERVAL 90 DAY;

mysql> select user,host,password_last_changed,password_lifetime from mysql.user where user='test_passwd';

②#創建用戶test_passwd_never并設置密碼用不過期

mysql> CREATE USER 'test_passwd2'@'localhost' identified by 'Atest_passwd123' PASSWORD EXPIRE NEVER;

mysql> select user,host,password_last_changed,password_lifetime from mysql.user where user='test_passwd2';

#創建用戶test_passwd_default并設置密碼過期時間遵循系統默認值

mysql> CREATE USER 'test_passwd_default'@'localhost' identified by 'Atest_passwd123' PASSWORD EXPIRE DEFAULT;

mysql> select user,host,password_last_changed,password_lifetime from mysql.user where user='test_passwd_default';

三、設置登錄失敗處理功能,失敗登錄5次鎖定5分鐘

設置方法:

①登錄

[root@localhost tmp]# mysql -uroot -p

②輸入一下命令,安裝插件

mysql> install plugin CONNECTION_CONTROL soname 'connection_control.so';

mysql> install plugin CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS soname 'connection_control.so';

查看:

mysql> show variables like '%connection_control%';

③修改my.cnf文件

vi /etc/my.cnf

在文件中,我們增加如下兩行

connection-control-failed-connections-threshold=5 ??#登陸失敗次數限制

connection-control-min-connection-delay=300000 ???#限制重試時間,此處為毫秒,注意按需求換算,此處為5分鐘

④重啟mysqld服務

[root@localhost tmp]# systemctl restart mysqld.service

⑤重新登錄數據庫,查看是否生效

mysql> show variables like '%connection_control%';

?

總結

以上是生活随笔為你收集整理的MYSQL5.7设置账号密码复杂度、密码有效期、账号锁定等策略的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。