詳解MySQL的用戶密碼過時功用。本站提示廣大學習愛好者:(詳解MySQL的用戶密碼過時功用)文章只能為提供參考,不一定能成為您想要的結果。以下是詳解MySQL的用戶密碼過時功用正文
Payment Card Industry,即領取卡行業,PCI行業表示借記卡、信譽卡、預付卡、電子錢包、ATM和POS卡及相關的業務。
PCI DSS,即PCI數據平安規范(Payment Card Industry Data Security Standard)是由PCI平安規范委員會制定,旨在使國際上采用分歧的數據平安措施。
PCI DSS規范要求用戶每隔90天必需更改他們的密碼。那麼MySQL數據庫該怎樣順應這個狀況?僥幸的是,在MySQL版本5.6.6版本起,添加了password_expired功用,它允許設置用戶的過時時間。
這個特性曾經添加到mysql.user數據表,但是它的默許值是”N”。可以運用ALTER USER語句來修正這個值。
上面是關於如何設置MySQL用戶賬號的到期日期一個復雜例子:
mysql> ALTER USER 'testuser'@'localhost' PASSWORD EXPIRE;
一旦某個用戶的這個選項設置為”Y”,那麼這個用戶還是可以登陸到MySQL服務器,但是在用戶未設置新密碼之前不能運轉任何查詢語句,而且會失掉如下錯誤音訊提示:
mysql> SHOW DATABASES; ERROR 1820 (HY000): You must SET PASSWORD before executing this statement Keep in mind that this does not affect any current connections the account has open.
當用戶設置了新密碼後,此用戶的一切操作(依據用戶本身的權限)會被允許執行:
mysql> SET PASSWORD=PASSWORD('mechipoderranen'); Query OK, 0 rows affected (0.00 sec) mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | data | | logs | | mysql | | performance_schema | | test | +--------------------+ 6 rows in set (0.00 sec) mysql>
DBA可以經過cron定時器義務來設置MySQL用戶的密碼過時時間。
從MySQL 5.7.4版開端,用戶的密碼過時時間這個特性得以改良,可以經過一個全局變量default_password_lifetime來設置密碼過時的戰略,此全局變量可以設置一個全局的自動密碼過時戰略。
用法示例:
可以在MySQL的配置文件中設置一個默許值,這會使得一切MySQL用戶的密碼過時時間都為90天,MySQL會從啟動時開端計算時間。my.cnf配置如下:
[mysqld] default_password_lifetime=90
假如要設置密碼永不過時的全局戰略,可以這樣:(留意這是默許值,配置文件中可以不聲明)
[mysqld] default_password_lifetime=0
在MySQL運轉時可以運用超級權限修正此配置:
mysql> SET GLOBAL default_password_lifetime = 90; Query OK, 0 rows affected (0.00 sec)
還可以運用ALTER USER命令為每個詳細的用戶賬戶獨自設置特定的值,它會自動掩蓋密碼過時的全局戰略。要留意ALTER USER語句的INTERVAL的單位是“天”。
ALTER USER ‘testuser'@‘localhost' PASSWORD EXPIRE INTERVAL 30 DAY;
禁用密碼過時:
ALTER USER 'testuser'@'localhost' PASSWORD EXPIRE NEVER;
讓用戶運用默許的密碼過時全局戰略:
ALTER USER 'testuser'@'localhost' PASSWORD EXPIRE DEFAULT;
從MySQL 5.7.6版開端,還可以運用ALTER USER語句修正用戶的密碼:
mysql> ALTER USER USER() IDENTIFIED BY '637h1m27h36r33K'; Query OK, 0 rows affected (0.00 sec)
後記
在MySQL 5.7.8版開端用戶管理方面添加了鎖定/解鎖用戶賬戶的新特性, related to user management is locking/unlocking user accounts when CREATE USER, or at a later time running the ALTER USER statement.
上面創立一個帶賬戶鎖的用戶:
mysql> CREATE USER 'furrywall'@'localhost' IDENTIFIED BY '71m32ch4n6317' ACCOUNT LOCK; Query OK, 0 rows affected (0.00 sec)
如下所示,新創立的用戶在嘗試登陸時會失掉一個ERROR 3118錯誤音訊提示:
$ mysql -ufurrywall -p Enter password: ERROR 3118 (HY000): Access denied for user 'furrywall'@'localhost'. Account is locked.
此時就需求運用ALTER USER … ACCOUNT UNLOCK語句停止解鎖了:
mysql>ALTER USER 'furrywall'@'localhost' ACCOUNT UNLOCK; Query OK, 0 rows affected (0.00 sec)
如今,這個用戶曾經解鎖,可以登陸了:
$ mysql -ufurrywall -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 17 Server version: 5.7.8-rc MySQL Community Server (GPL) Copyright (c) 2000, 2015, 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> ALTER USER 'furrywall'@'localhost' ACCOUNT LOCK; Query OK, 0 rows affected (0.00 sec)
以上就是為大家引見的MySQL的用戶密碼過時功用的相關內容,希望對大家的學習有所協助。