濮阳杆衣贸易有限公司

主頁 > 知識庫 > 詳解MySQL8.0 密碼過期策略

詳解MySQL8.0 密碼過期策略

熱門標簽:南通自動外呼系統軟件 申請外呼電話線路 芒果電話機器人自動化 信陽穩(wěn)定外呼系統運營商 廣東人工電話機器人 湖南人工外呼系統多少錢 日照旅游地圖標注 百度地圖圖標標注中心 石家莊電商外呼系統

    MySQL8.0.16開始,可以設置密碼的過期策略,今天針對這個小的知識點進行展開。

1、手工設置單個密碼過期

MySQL8.0中,我們可以使用alter user這個命令來讓密碼過期。

首先我們創(chuàng)建賬號yeyz,密碼是yeyz

[root@VM-0-14-centos ~]# /usr/local/mysql-8.0.19-el7-x86_64/bin/mysql -uyeyz -pyeyz -h127.0.0.1 -P4306 -e "select 1"
mysql: [Warning] Using a password on the command line interface can be insecure.
+---+
| 1 |
+---+
| 1 |
+---+

這里我們讓它過期:

mysql> alter user yeyz@'127.0.0.1' password expire;
Query OK, 0 rows affected (0.01 sec)

再來看連接:

[root@VM-0-14-centos ~]# /usr/local/mysql-8.0.19-el7-x86_64/bin/mysql -uyeyz -pyeyz -h127.0.0.1 -P4306 -e "select 1"
mysql: [Warning] Using a password on the command line interface can be insecure.
Please use --connect-expired-password option or invoke mysql in interactive mode.

-- 提示我們通過--connect-expire-password命令來進行連接,我們加上看看

[root@VM-0-14-centos ~]# /usr/local/mysql-8.0.19-el7-x86_64/bin/mysql -uyeyz -pyeyz -h127.0.0.1 -P4306 --connect-expired-password -e "select 1" 
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1820 (HY000) at line 1: You must reset your password using ALTER USER statement before executing this statement.

-- 這里提示我們先執(zhí)行alter user的語法來修改密碼,然后再使用密碼。

當然,除了手工設置密碼過期外,我們還可以設置密碼永不過期和指定過期時間:

-- 設置密碼永不過期
mysql> create user yeyz1@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz1' password expire never;
Query OK, 0 rows affected (0.01 sec)

-- 設置密碼過期天數為指定天數
mysql> create user yeyz2@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz2' password expire interval 90 day; 
Query OK, 0 rows affected (0.01 sec)

如果我們想遵循全局密碼到期策略,則可以使用defalut關鍵字:

mysql> create user yeyz3@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz3' password expire default;
Query OK, 0 rows affected (0.01 sec)

這種情況下,將遵守參數default_password_lifetime設置的時間。

2、設置全局密碼過期時間。

如果我們想讓所有的密碼都有過期時間,可以通過配置參數default_password_lifetime。它的默認值為0,表示禁用自動密碼過期。如果default_password_lifetime的值為正整數N,則表示允許的密碼生存期,單位為天,因此必須每N天更改一次密碼。

mysql> show variables like '%lifetime%';
+---------------------------+-------+
| Variable_name | Value |
+---------------------------+-------+
| default_password_lifetime | 0 |
+---------------------------+-------+
1 row in set (0.00 sec)

3、設置全局密碼可重復使用時間和可重復使用的間隔次數

注意,這里的可重復使用時間和可重復使用的間隔次數和過期時間的概念不一樣,過期時間指的是密碼到這個時間就過期了,就變成不可用了。而可重復使用指的是到指定時間才可以重復使用歷史密碼,或者密碼修改了指定的次數之后,才可以使用歷史密碼。

我們可以通過下面的方法來設置單個密碼可重復使用時間,或者可重復間隔次數,其中:

過期時間表示多久之后,需要修改密碼;

過期次數表示每間隔多少次才可以設置重復密碼。

這兩個功能分別需要使用參數 password_history 和 password_reuse_interval

我們來測試下password_history這個參數:

mysql> alter user yeyz@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz';
Query OK, 0 rows affected (0.01 sec)

mysql> 
mysql> show variables like '%password_history%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| password_history | 0 |
+------------------+-------+
1 row in set (0.00 sec)

mysql> set global password_history=2;
Query OK, 0 rows affected (0.00 sec)

-- 第一次修改,成功
mysql> alter user yeyz@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz';
Query OK, 0 rows affected (0.01 sec)

-- 第二次修改,報錯
mysql> alter user yeyz@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz';
ERROR 3638 (HY000): Cannot use these credentials for 'yeyz@127.0.0.1' because they contradict the password history policy
mysql> 

可以看到,一開始的時候,這個password_history參數設置為0,我們將它改為2,代表每執(zhí)行2次密碼設置動作,才可以重復之前的密碼,也就是不允許本次修改的密碼和上次密碼一致。然后開始修改密碼為之前同樣的密碼'yeyz',第一次修改的時候成功了,第二次設置密碼的時候,直接報錯了。

這種方式是通過系統變量的方式來設置密碼的有效次數的。

4、設置單個密碼可重復使用時間和可重復使用的間隔次數

-- 設置密碼為每間隔5次才可以重復使用
mysql> create user yeyz3@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz3' password history 5;
Query OK, 0 rows affected (0.01 sec)

-- 設置密碼為每隔5天才可以重復使用
mysql> create user yeyz4@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz4' password reuse interval 5 day; 
Query OK, 0 rows affected (0.01 sec)

-- 設置密碼為每隔5天可以重復使用或者每個5次才可以重復使用,取最嚴格的那個條件
mysql> create user yeyz5@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz5' password reuse interval 5 day password history 5;
Query OK, 0 rows affected (0.01 sec)

-- 使用默認的全局密碼可重復使用策略,也就是password history參數和password reuse interval參數
mysql> create user yeyz6@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz6' password reuse interval default password history default; 
Query OK, 0 rows affected (0.01 sec)

以上就是詳解MySQL8.0 密碼過期策略的詳細內容,更多關于MySQL8.0密碼過期策略的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • MySQL安全輸入密碼的一些操作介紹
  • MySQL 5.6 如何更改安全的處理密碼探討
  • MySQL8忘記密碼的快速解決方法
  • Mac下mysql 8.0.22 找回密碼的方法
  • MySQL 如何修改root用戶的密碼
  • mysql實現不用密碼登錄的實例方法
  • Linux mysql-5.6如何實現重置root密碼
  • 如何安全地關閉MySQL
  • 如何優(yōu)雅、安全的關閉MySQL進程
  • 年底了,你的mysql密碼安全嗎

標簽:阿里 牡丹江 天津 惠州 呼和浩特 合肥 公主嶺 沈陽

巨人網絡通訊聲明:本文標題《詳解MySQL8.0 密碼過期策略》,本文關鍵詞  詳解,MySQL8.0,密碼,過期,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解MySQL8.0 密碼過期策略》相關的同類信息!
  • 本頁收集關于詳解MySQL8.0 密碼過期策略的相關信息資訊供網民參考!
  • 推薦文章
    云林县| 利辛县| 楚雄市| 凤翔县| 元阳县| 大方县| 昆山市| 迁西县| 尉氏县| 调兵山市| 墨玉县| 张家界市| 景宁| 卢湾区| 望城县| 正镶白旗| 巫山县| 德格县| 永和县| 枣阳市| 渭源县| 苏尼特左旗| 平定县| 凤台县| 合肥市| 遵义县| 陆川县| 东山县| 漳浦县| 故城县| 涿州市| 临洮县| 蚌埠市| 西盟| 余干县| 扬州市| 平果县| 双鸭山市| 大丰市| 汕尾市| 察雅县|