国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - Mysql - 年底了,你的數(shù)據(jù)庫密碼安全嗎

年底了,你的數(shù)據(jù)庫密碼安全嗎

2021-01-06 22:51MySQL技術(shù) Mysql

年底了,你的數(shù)據(jù)庫是不是該巡檢了?一般巡檢都會關(guān)心密碼安全問題,比如密碼復(fù)雜度設(shè)置,是否有定期修改等。特別是進行等保評測時,評測機構(gòu)會要求具備密碼安全策略。其實 MySQL 系統(tǒng)本身可以設(shè)置密碼復(fù)雜度及自動過期策

 前言:

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

 

年底了,你的數(shù)據(jù)庫密碼安全嗎

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

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

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

進入 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 命令可安裝此插件 

# 每個平臺的文件名后綴都不同 對于 Unix 和類 Unix 系統(tǒng),為.so,對于 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      | 

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

rows in set (0.00 sec) 

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

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

1、validate_password_policy

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

0 or LOW 僅需需符合密碼長度(由參數(shù)validate_password_length指定)

1 or MEDIUM 滿足LOW策略,同時還需滿足至少有1個數(shù)字,小寫字母,大寫字母和特殊字符

2 or STRONG 滿足MEDIUM策略,同時密碼不能存在字典文件(dictionary file)中

2、validate_password_dictionary_file

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

3、validate_password_length

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

4、validate_password_mixed_case_count

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

5、validate_password_number_count

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

6、validate_password_special_char_count

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

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

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

# 設(shè)置密碼長度至少10位 

mysql> set global validate_password_length = 10; 

Query OK, 0 rows affected (0.00 sec) 

 

mysql> show variables like 'validate%';                                                                                    

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

| Variable_name                        | Value  | 

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

| validate_password_check_user_name    | ON     | 

| validate_password_dictionary_file    |        | 

| validate_password_length             | 10     | 

| validate_password_mixed_case_count   | 1      | 

| validate_password_number_count       | 1      | 

| validate_password_policy             | MEDIUM | 

| validate_password_special_char_count | 1      | 

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

rows in set (0.00 sec) 

 

# 若想永久生效,建議將以下參數(shù)寫入配置文件 

[mysqld] 

plugin-load = validate_password.so 

validate_password_length = 10 

validate_password_policy = 1 

validate-password = FORCE_PLUS_PERMANENT 

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

密碼復(fù)雜度策略只對生效后的操作有效,比如說你之前有個賬號,密碼是 123 ,則該賬號還是可以繼續(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è)置密碼自動過期

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

單獨設(shè)置某個賬號密碼過期時間

使用 ALTER USER 語句可以使單個賬號密碼過期,也可以更改賬號過期時間。

# 通過 mysql.user 系統(tǒng)表查看數(shù)據(jù)庫賬號狀態(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              | 

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

rows in set (0.01 sec) 

 

# 使 expuser 賬號密碼立即過期 

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              | 

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

rows in set (0.00 sec) 

 

# 修改賬號密碼永不過期 

mysql> ALTER USER 'expuser'@'%' PASSWORD EXPIRE NEVER; 

Query OK, 0 rows affected (0.01 sec) 

 

# 單獨設(shè)置該賬號密碼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              | 

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

rows in set (0.00 sec) 

 

# 讓此賬號使用默認的密碼過期全局策略 

mysql> ALTER USER 'expuser'@'%' PASSWORD EXPIRE DEFAULT

Query OK, 0 rows affected (0.01 sec) 

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

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

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

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

# 設(shè)置全局過期策略 先手動更改再加入配置文件 

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è)置為當前值來“重置”它,但出于良好的 Policy 考慮,最好選擇其他密碼。

總結(jié):

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

原文地址:https://mp.weixin.qq.com/s?__biz=MzI2NTA3OTY2Nw==&mid=2647635621&idx=1&sn=2b430266418688ca00d6f49958639472&chksm=f299c8b9c5ee41af81cdb503f21d3b32b468bf42b3abf7f27106a6708f9dda713bc5a9636b0d&mpshare=1&

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久久久久高清 | 久久国产亚洲精品 | 久久合 | 亚洲视频免费在线观看 | 欧美成人精品激情在线观看 | 69免费视频| 久草新免费 | 亚洲精品国产综合99久久夜夜嗨 | 综合亚洲精品 | 欧美中文一区二区三区 | 日韩久久久久久 | 国产精品美女久久久久久免费 | 国产精品一区二区av | 久久午夜影院 | 欧美精品一区二区三区在线 | 国产一区色 | 国产欧美综合一区二区三区 | 在线观看中文字幕 | 亚洲精品久久久久久下一站 | 久久成人免费视频 | 亚洲精选久久 | 国产日韩精品久久 | 久久大陆| 欧美香蕉 | 亚洲一区二区三区四区在线 | 成人午夜精品一区二区三区 | 日韩精品一区二区三区在线观看视频网站 | 久久黄色 | 日穴视频在线观看 | 亚洲综合国产 | 日韩国产精品一区二区三区 | 中文字幕亚洲欧美 | 91精品国产综合久久久久 | a黄视频| 欧美亚洲国产日韩 | 久久久久国产精品 | 久久亚洲一区二区三区四区 | 久久99深爱久久99精品 | 国产亚洲精品精品国产亚洲综合 | 影音先锋网址 | 伊人精品在线 |