久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何設(shè)置安全的數(shù)據(jù)庫密碼

159次閱讀
沒有評論

共計 8250 個字符,預(yù)計需要花費 21 分鐘才能閱讀完成。

本篇內(nèi)容介紹了“如何設(shè)置安全的數(shù)據(jù)庫密碼”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

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 | +--------------------------------------+--------+ 7 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é)習(xí)完以上參數(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 | +--------------------------------------+--------+ 7 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 | +------------------+-----------+------------------+-------------------+-----------------------+----------------+ 7 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 | +------------------+-----------+------------------+-------------------+-----------------------+----------------+ 7 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 | +------------------+-----------+------------------+-------------------+-----------------------+----------------+ 7 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 考慮,最好選擇其他密碼。

“如何設(shè)置安全的數(shù)據(jù)庫密碼”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編將為大家輸出更多高質(zhì)量的實用文章!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-27發(fā)表,共計8250字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 福建省| 板桥市| 孟州市| 潜山县| 蒲江县| 尉犁县| 长白| 哈巴河县| 英吉沙县| 利川市| 莆田市| 报价| 祁阳县| 宁城县| 济宁市| 视频| 建昌县| 道孚县| 阳原县| 长兴县| 云安县| 轮台县| 永登县| 牙克石市| 虞城县| 灵川县| 石河子市| 壶关县| 长丰县| 九台市| 青海省| 喀喇| 湄潭县| 赤壁市| 建昌县| 乌什县| 株洲市| 哈巴河县| 射洪县| 介休市| 湖南省|