溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL如何實現(xiàn)用戶密碼過期功能

發(fā)布時間:2021-11-06 10:45:18 來源:億速云 閱讀:339 作者:小新 欄目:MySQL數(shù)據(jù)庫

這篇文章主要介紹了MySQL如何實現(xiàn)用戶密碼過期功能,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

從MySQL版本5.6.6版本起,添加了password_expired功能,它允許設置用戶的過期時間。

這個特性已經(jīng)添加到mysql.user數(shù)據(jù)表,但是它的默認值是”N”??梢允褂肁LTER USER語句來修改這個值。
例如:
mysql> ALTER USER mdba@'localhost' PASSWORD EXPIRE;
Query OK, 0 rows affected (0.04 sec)


在用戶未設置新密碼之前不能運行任何查詢語句,而且會得到如下錯誤消息提示:
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.


按照以下操作執(zhí)行完后此用戶的所有操作就又會被允許執(zhí)行:

mysql>  alter user mdba@localhost identified by 'Aisino123!';
Query OK, 0 rows affected (0.03 sec)


mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)


mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)


在MySQL 5.7.8版開始用戶管理方面添加了鎖定/解鎖用戶賬戶的新特性
例如:

mysql> alter user mdba@localhost account lock;
Query OK, 0 rows affected (0.04 sec)


重新登錄發(fā)現(xiàn)被拒絕:
[root@localhost ~]# mysql -u mdba -p
Enter password:
ERROR 3118 (HY000): Access denied for user 'mdba'@'localhost'. Account is locked.


解鎖后恢復正常:

mysql> alter user mdba@localhost account unlock;
Query OK, 0 rows affected (0.03 sec)


[root@localhost ~]# mysql -u mdba -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 942539
Server version: 5.7.17-debug-log Source distribution


Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql>


從MySQL 5.7.4版開始,用戶的密碼過期時間這個特性得以改進,可以通過一個全局變量default_password_lifetime來設置密碼過期的策略,
此全局變量可以設置一個全局的自動密碼過期策略。
在MySQL5.7的配置文件中設置一個默認值,這會使得所有MySQL用戶的密碼過期時間都為90天,MySQL會從啟動時開始計算時間。
例如在my.cnf里添加:

[mysqld]
default_password_lifetime=90

這會使得所有MySQL用戶的密碼過期時間都為90天,MySQL會從啟動時開始計算時間。
如果要設置密碼永不過期的全局策略,可以設置default_password_lifetime=0,或者在命令行設置:
mysql> SET GLOBAL default_password_lifetime = 0;
Query OK, 0 rows affected (0.00 sec)

感謝你能夠認真閱讀完這篇文章,希望小編分享的“MySQL如何實現(xiàn)用戶密碼過期功能”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,更多相關知識等著你來學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI