最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

年底了,你的mysql密碼安全嗎

 更新時(shí)間:2021年01月13日 17:11:12   作者:MySQL技術(shù)  
這篇文章主要介紹了MySQL密碼安全的相關(guān)知識(shí),幫助大家更好的使用數(shù)據(jù)庫,感興趣的朋友可以了解下

前言: 

年底了,你的數(shù)據(jù)庫是不是該巡檢了?一般巡檢都會(huì)關(guān)心密碼安全問題,比如密碼復(fù)雜度設(shè)置,是否有定期修改等。特別是進(jìn)行等保評(píng)測時(shí),評(píng)測機(jī)構(gòu)會(huì)要求具備密碼安全策略。其實(shí) MySQL 系統(tǒng)本身可以設(shè)置密碼復(fù)雜度及自動(dòng)過期策略的,可能比較少用,大多數(shù)同學(xué)并未詳細(xì)去了解。本篇文章我們一起來學(xué)習(xí)下如何設(shè)置數(shù)據(jù)庫賬號(hào)密碼復(fù)雜度及自動(dòng)過期策略。

  1.密碼復(fù)雜度策略設(shè)置

MySQL 系統(tǒng)自帶有 validate_password 插件,此插件可以驗(yàn)證密碼強(qiáng)度,未達(dá)到規(guī)定強(qiáng)度的密碼則不允許被設(shè)置。MySQL 5.7 及 8.0 版本默認(rèn)情況下貌似都不啟用該插件,這也使得我們可以隨意設(shè)置密碼,比如設(shè)置為 123、123456等。如果我們想從根源上規(guī)范密碼強(qiáng)度,可以啟用該插件,下面一起來看下如何通過此插件來設(shè)置密碼復(fù)雜度策略。

1)查看是否已安裝此插件

進(jìn)入 MySQL 命令行,通過 show plugins 或者查看 validate_password 相關(guān)參數(shù)可以判斷是否已安裝此插件。若沒有相關(guān)參數(shù)則代表未安裝此插件

# 安裝前檢查 為空則說明未安裝此插件
mysql> show variables like 'validate%';
Empty set (0.00 sec)

2)安裝 validate_password 插件

# 通過 INSTALL PLUGIN 命令可安裝此插件
# 每個(gè)平臺(tái)的文件名后綴都不同 對(duì)于 Unix 和類 Unix 系統(tǒng),為.so,對(duì)于 Windows 為.dll
mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so';
Query OK, 0 rows affected, 1 warning (0.28 sec)

# 查看 validate_password 相關(guān)參數(shù)
mysql> show variables like 'validate%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | ON     |
| 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      |
+--------------------------------------+--------+
7 rows in set (0.00 sec)

3)密碼強(qiáng)度相關(guān)參數(shù)解釋

安裝  validate_password 插件后,多了一些密碼強(qiáng)度相關(guān)參數(shù),這些參數(shù)從字面意思上也很容易看懂,下面簡單解釋下幾個(gè)重點(diǎn)參數(shù)。

1、validate_password_policy

代表的密碼策略,默認(rèn)是MEDIUM 可配置的值有以下:

  • 0 or LOW 僅需需符合密碼長度(由參數(shù)validate_password_length指定)
  • 1 or MEDIUM 滿足LOW策略,同時(shí)還需滿足至少有1個(gè)數(shù)字,小寫字母,大寫字母和特殊字符
  • 2 or STRONG 滿足MEDIUM策略,同時(shí)密碼不能存在字典文件(dictionary file)中

2、validate_password_dictionary_file

用于配置密碼的字典文件,當(dāng)validate_password_policy設(shè)置為STRONG時(shí)可以配置密碼字典文件,字典文件中存在的密碼不得使用。

3、validate_password_length

用來設(shè)置密碼的最小長度,默認(rèn)值是8

4、validate_password_mixed_case_count  

當(dāng)validate_password_policy設(shè)置為MEDIUM或者STRONG時(shí),密碼中至少同時(shí)擁有的小寫和大寫字母的數(shù)量,默認(rèn)是1最小是0;默認(rèn)是至少擁有一個(gè)小寫和一個(gè)大寫字母。

5、validate_password_number_count    

當(dāng)validate_password_policy設(shè)置為MEDIUM或者STRONG時(shí),密碼中至少擁有的數(shù)字的個(gè)數(shù),默認(rèn)1最小是0

6、validate_password_special_char_count

當(dāng)validate_password_policy設(shè)置為MEDIUM或者STRONG時(shí),密碼中至少擁有的特殊字符的個(gè)數(shù),默認(rèn)1最小是0

4)密碼復(fù)雜度策略具體設(shè)置

學(xué)習(xí)完以上參數(shù),我們就可以根據(jù)自身情況來具體設(shè)置密碼復(fù)雜度策略了,比如我想讓密碼至少 10 位且包含大小寫字母、數(shù)字、特殊字符,則可以這樣設(shè)置。

5)測試密碼復(fù)雜度

密碼復(fù)雜度策略只對(duì)生效后的操作有效,比如說你之前有個(gè)賬號(hào),密碼是 123 ,則該賬號(hào)還是可以繼續(xù)使用的,不過若再次更改密碼則需滿足復(fù)雜度策略。下面我們來測試下密碼復(fù)雜度策略的具體效果。

# 新建用戶設(shè)置密碼
mysql> create user 'testuser'@'%' identified by '123';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> create user 'testuser'@'%' identified by 'ab123';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> create user 'testuser'@'%' identified by 'Ab@123';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> create user 'testuser'@'%' identified by 'Bsdf@5467672';
Query OK, 0 rows affected (0.01 sec)

# 更改密碼
mysql> alter user 'testuser'@'%' identified by 'dfgf3435';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> alter user 'testuser'@'%' identified by 'dBsdf@5467672';
Query OK, 0 rows affected (0.01 sec)

  2.設(shè)置密碼自動(dòng)過期

除了設(shè)置密碼復(fù)雜度策略外,我們還可以設(shè)置密碼自動(dòng)過期,比如說隔 90 天密碼會(huì)過期必須修改密碼后才能繼續(xù)使用,這樣我們的數(shù)據(jù)庫賬號(hào)就更加安全了。下面我們來看下如何設(shè)置密碼自動(dòng)過期。

單獨(dú)設(shè)置某個(gè)賬號(hào)密碼過期時(shí)間

使用 ALTER USER 語句可以使單個(gè)賬號(hào)密碼過期,也可以更改賬號(hào)過期時(shí)間。

# 通過 mysql.user 系統(tǒng)表查看數(shù)據(jù)庫賬號(hào)狀態(tài)
mysql> select user,host,password_expired,password_lifetime,password_last_changed,account_locked from mysql.user;
+------------------+-----------+------------------+-------------------+-----------------------+----------------+
| user             | host      | password_expired | password_lifetime | password_last_changed | account_locked |
+------------------+-----------+------------------+-------------------+-----------------------+----------------+
| expuser          | %         | N                |              NULL | 2021-01-05 14:30:30   | N              |
| root             | %         | N                |              NULL | 2020-10-30 14:45:43   | N              |
| testuser         | %         | N                |              NULL | 2021-01-04 17:22:37   | N              |
| mysql.infoschema | localhost | N                |              NULL | 2020-10-30 14:37:09   | Y              |
| mysql.session    | localhost | N                |              NULL | 2020-10-30 14:37:09   | Y              |
| mysql.sys        | localhost | N                |              NULL | 2020-10-30 14:37:09   | Y              |
| root             | localhost | N                |              NULL | 2020-10-30 14:38:55   | N              |
+------------------+-----------+------------------+-------------------+-----------------------+----------------+
7 rows in set (0.01 sec)

# 使 expuser 賬號(hào)密碼立即過期
mysql> ALTER USER 'expuser'@'%' PASSWORD EXPIRE;
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,password_expired,password_lifetime,password_last_changed,account_locked from mysql.user;
+------------------+-----------+------------------+-------------------+-----------------------+----------------+
| user             | host      | password_expired | password_lifetime | password_last_changed | account_locked |
+------------------+-----------+------------------+-------------------+-----------------------+----------------+
| expuser          | %         | Y                |              NULL | 2021-01-05 14:30:30   | N              |
| root             | %         | N                |              NULL | 2020-10-30 14:45:43   | N              |
| testuser         | %         | N                |              NULL | 2021-01-04 17:22:37   | N              |
| mysql.infoschema | localhost | N                |              NULL | 2020-10-30 14:37:09   | Y              |
| mysql.session    | localhost | N                |              NULL | 2020-10-30 14:37:09   | Y              |
| mysql.sys        | localhost | N                |              NULL | 2020-10-30 14:37:09   | Y              |
| root             | localhost | N                |              NULL | 2020-10-30 14:38:55   | N              |
+------------------+-----------+------------------+-------------------+-----------------------+----------------+
7 rows in set (0.00 sec)

# 修改賬號(hào)密碼永不過期
mysql> ALTER USER 'expuser'@'%' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.01 sec)

# 單獨(dú)設(shè)置該賬號(hào)密碼90天過期
mysql> ALTER USER 'expuser'@'%' PASSWORD EXPIRE INTERVAL 90 DAY;
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,password_expired,password_lifetime,password_last_changed,account_locked from mysql.user;
+------------------+-----------+------------------+-------------------+-----------------------+----------------+
| user             | host      | password_expired | password_lifetime | password_last_changed | account_locked |
+------------------+-----------+------------------+-------------------+-----------------------+----------------+
| expuser          | %         | N                |                90 | 2021-01-05 14:41:28   | N              |
| root             | %         | N                |              NULL | 2020-10-30 14:45:43   | N              |
| testuser         | %         | N                |              NULL | 2021-01-04 17:22:37   | N              |
| mysql.infoschema | localhost | N                |              NULL | 2020-10-30 14:37:09   | Y              |
| mysql.session    | localhost | N                |              NULL | 2020-10-30 14:37:09   | Y              |
| mysql.sys        | localhost | N                |              NULL | 2020-10-30 14:37:09   | Y              |
| root             | localhost | N                |              NULL | 2020-10-30 14:38:55   | N              |
+------------------+-----------+------------------+-------------------+-----------------------+----------------+
7 rows in set (0.00 sec)

# 讓此賬號(hào)使用默認(rèn)的密碼過期全局策略
mysql> ALTER USER 'expuser'@'%' PASSWORD EXPIRE DEFAULT;
Query OK, 0 rows affected (0.01 sec)

mysql.user 系統(tǒng)表記錄著每個(gè)賬號(hào)的相關(guān)信息,當(dāng) password_expired 字段值為 Y 時(shí),代表此密碼已過期,使用過期密碼仍可以登錄,但不能進(jìn)行任何操作,進(jìn)行操作會(huì)提示:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 必須更改密碼后才能進(jìn)行正常操作。

對(duì)于給定過期時(shí)間的賬號(hào),比如說設(shè)置 90 天過期,數(shù)據(jù)庫系統(tǒng)會(huì)比較當(dāng)前時(shí)間與上次修改密碼的時(shí)間差值,如果距離上次修改密碼時(shí)間超過 90 天,則將此賬號(hào)密碼標(biāo)記為過期,必須更改密碼后才能進(jìn)行操作。

設(shè)置全局過期策略

要構(gòu)建全局密碼自動(dòng)過期策略,請(qǐng)使用 default_password_lifetime 系統(tǒng)變量。在 5.7.11 版本之前,默認(rèn)的 default_password_lifetime 值為 360(密碼大約每年必須更改一次),之后的版本默認(rèn)值為 0,表示密碼不會(huì)過期。此參數(shù)的單位是天,比如我們可以將此參數(shù)設(shè)置為 90 ,則表示全局密碼自動(dòng)過期策略是 90 天。

# 設(shè)置全局過期策略 先手動(dòng)更改再加入配置文件
mysql> SET GLOBAL default_password_lifetime = 90;
Query OK, 0 rows affected (0.01 sec)

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

# 寫入配置文件使得重啟生效
[mysqld]
default_password_lifetime = 90

盡管可以通過將過期的密碼設(shè)置為當(dāng)前值來“重置”它,但出于良好的 Policy 考慮,最好選擇其他密碼。

總結(jié): 

本篇文章主要介紹了關(guān)于數(shù)據(jù)庫密碼的兩項(xiàng)安全策略,密碼復(fù)雜度加上密碼過期策略,多一份策略多一份安心。要記?。喊踩珶o小事。

以上就是年底了,你的mysql密碼安全嗎的詳細(xì)內(nèi)容,更多關(guān)于mysql 密碼安全的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • MySQL中的行級(jí)鎖詳解

    MySQL中的行級(jí)鎖詳解

    MySQL中的行級(jí)鎖是InnoDB存儲(chǔ)引擎提供的一種細(xì)粒度鎖,基于索引實(shí)現(xiàn),MySQL中鎖有很多種,其中從鎖的粒度來區(qū)分的話可以分為表級(jí)鎖,行級(jí)鎖,頁級(jí)鎖,本文主要介紹MySQL中的行級(jí)鎖,感興趣的朋友一起看看吧
    2025-03-03
  • Navicat連接mysql報(bào)錯(cuò)問題

    Navicat連接mysql報(bào)錯(cuò)問題

    這篇文章主要介紹了Navicat連接mysql報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • 解析SQL 表結(jié)構(gòu)信息查詢 含主外鍵、自增長

    解析SQL 表結(jié)構(gòu)信息查詢 含主外鍵、自增長

    本篇文章是對(duì)SQL 表結(jié)構(gòu)信息查詢 含主外鍵、自增長進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 簡單解析MySQL中的cardinality異常

    簡單解析MySQL中的cardinality異常

    這篇文章主要介紹了簡單解析MySQL中的cardinality異常,這個(gè)異常會(huì)導(dǎo)致索引無法使用,需要的朋友可以參考下
    2015-05-05
  • 基于SQL中SET與SELECT賦值的區(qū)別詳解

    基于SQL中SET與SELECT賦值的區(qū)別詳解

    本篇文章是對(duì)SQL中SET與SELECT賦值的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL 集群遷移到 Kubernetes操作步驟

    MySQL 集群遷移到 Kubernetes操作步驟

    這篇文章主要為大家介紹了MySQL 集群遷移到 Kubernetes使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • MySQL中distinct語句去查詢重復(fù)記錄及相關(guān)的性能討論

    MySQL中distinct語句去查詢重復(fù)記錄及相關(guān)的性能討論

    這篇文章主要介紹了MySQL中distinct語句去查詢重復(fù)記錄及相關(guān)的性能討論,文中的觀點(diǎn)是在一定情況下避免在最高層查詢中使用distinct,需要的朋友可以參考下
    2016-01-01
  • 給mysql數(shù)據(jù)庫的字段設(shè)默認(rèn)值方式

    給mysql數(shù)據(jù)庫的字段設(shè)默認(rèn)值方式

    這篇文章主要介紹了給mysql數(shù)據(jù)庫的字段設(shè)默認(rèn)值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • MySQL數(shù)據(jù)庫INNODB表損壞修復(fù)處理過程分享

    MySQL數(shù)據(jù)庫INNODB表損壞修復(fù)處理過程分享

    突然收到MySQL報(bào)警,從庫的數(shù)據(jù)庫掛了,一直在不停的重啟,打開錯(cuò)誤日志,發(fā)現(xiàn)有張表壞了。innodb表損壞不能通過repair table 等修復(fù)myisam的命令操作?,F(xiàn)在記錄下解決過程
    2013-08-08
  • MySQL中登錄與退出超全圖文講解

    MySQL中登錄與退出超全圖文講解

    大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,MySQL是管理內(nèi)容最好的選擇,下面這篇文章主要給大家介紹了關(guān)于MySQL中登錄與退出圖文講解的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06

最新評(píng)論

通海县| 靖州| 织金县| 克拉玛依市| 徐州市| 兴隆县| 同仁县| 古丈县| 吉林市| 庆城县| 邳州市| 化州市| 长子县| 武穴市| 苗栗市| 宜昌市| 民丰县| 滦南县| 沂水县| 华宁县| 华池县| 图木舒克市| 莆田市| 鲁山县| 个旧市| 德清县| 洞头县| 淮北市| 泗水县| 双流县| 台东县| 深水埗区| 崇义县| 余干县| 鹰潭市| 涟源市| 电白县| 常宁市| 鹤峰县| 封开县| 乐清市|