中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

如何設置安全的數據庫密碼

發布時間:2021-10-22 09:58:10 來源:億速云 閱讀:146 作者:iii 欄目:數據庫

本篇內容介紹了“如何設置安全的數據庫密碼”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

1.密碼復雜度策略設置

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

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

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

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

2)安裝 validate_password 插件

# 通過 INSTALL PLUGIN 命令可安裝此插件 # 每個平臺的文件名后綴都不同 對于 Unix 和類 Unix 系統,為.so,對于 Windows 為.dll mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so'; Query OK, 0 rows affected, 1 warning (0.28 sec)  # 查看 validate_password 相關參數 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)密碼強度相關參數解釋

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

1、validate_password_policy

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

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

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

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

2、validate_password_dictionary_file

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

3、validate_password_length

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

4、validate_password_mixed_case_count

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

5、validate_password_number_count

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

6、validate_password_special_char_count

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

4)密碼復雜度策略具體設置

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

# 設置密碼長度至少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)  # 若想永久生效,建議將以下參數寫入配置文件 [mysqld] plugin-load = validate_password.so validate_password_length = 10 validate_password_policy = 1 validate-password = FORCE_PLUS_PERMANENT

5)測試密碼復雜度

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

# 新建用戶設置密碼 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.設置密碼自動過期

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

單獨設置某個賬號密碼過期時間

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

# 通過 mysql.user 系統表查看數據庫賬號狀態 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)  # 單獨設置該賬號密碼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 系統表記錄著每個賬號的相關信息,當 password_expired 字段值為 Y  時,代表此密碼已過期,使用過期密碼仍可以登錄,但不能進行任何操作,進行操作會提示:ERROR 1820 (HY000): You must reset your  password using ALTER USER statement before executing this statement.  必須更改密碼后才能進行正常操作。

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

設置全局過期策略

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

# 設置全局過期策略 先手動更改再加入配置文件 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

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

“如何設置安全的數據庫密碼”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

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

AI

土默特左旗| 深水埗区| 永春县| 澄城县| 蓝田县| 科技| 灵武市| 巫溪县| 张家港市| 宁城县| 墨脱县| 岢岚县| 黄冈市| 丰宁| 江阴市| 吉隆县| 巨鹿县| 防城港市| 裕民县| 石景山区| 新干县| 邵阳市| 永靖县| 包头市| 新泰市| 句容市| 沁源县| 彩票| 精河县| 武山县| 固阳县| 岚皋县| 通海县| 湛江市| 石台县| 广平县| 乌兰县| 偃师市| 紫阳县| 庆安县| 开阳县|