电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:29日期:2023-10-06 17:20:03
前言:

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

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 為.dllmysql> 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 位且包含大小寫字母、數字、特殊字符,則可以這樣設置。

5)測試密碼復雜度

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

# 新建用戶設置密碼mysql> create user ’testuser’@’%’ identified by ’123’;ERROR 1819 (HY000): Your password does not satisfy the current policy requirementsmysql> create user ’testuser’@’%’ identified by ’ab123’;ERROR 1819 (HY000): Your password does not satisfy the current policy requirementsmysql> create user ’testuser’@’%’ identified by ’Ab@123’;ERROR 1819 (HY000): Your password does not satisfy the current policy requirementsmysql> 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 requirementsmysql> 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 考慮,最好選擇其他密碼。

總結:

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

以上就是年底了,你的mysql密碼安全嗎的詳細內容,更多關于mysql 密碼安全的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
主站蜘蛛池模板: 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 氢氧化钙设备_厂家-淄博工贸有限公司 | 减速机_上海宜嘉减速机| 金联宇电缆|广东金联宇电缆厂家_广东金联宇电缆实业有限公司 | 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 车载加油机品牌_ 柴油加油机厂家 | 苏州工作服定做-工作服定制-工作服厂家网站-尺品服饰科技(苏州)有限公司 | 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | 集菌仪_智能集菌仪_全封闭集菌仪_无菌检查集菌仪厂家-那艾 | 体检车_移动CT车_CT检查车_CT车_深圳市艾克瑞电气有限公司移动CT体检车厂家-深圳市艾克瑞电气有限公司 | 山东led显示屏,山东led全彩显示屏,山东LED小间距屏,临沂全彩电子屏-山东亚泰视讯传媒有限公司 | 立式壁挂广告机厂家-红外电容触摸一体机价格-华邦瀛 | 天坛家具官网| 云南成人高考网| 优考试_免费在线考试系统_培训考试系统_题库系统_组卷答题系统_匡优考试 | 专业生物有机肥造粒机,粉状有机肥生产线,槽式翻堆机厂家-郑州华之强重工科技有限公司 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 多功能真空滤油机_润滑油全自动滤油机_高效真空滤油机价格-重庆润华通驰 | 洗瓶机厂家-酒瓶玻璃瓶冲瓶机-瓶子烘干机-封口旋盖压盖打塞机_青州惠联灌装机械 | 等离子表面处理机-等离子表面活化机-真空等离子清洗机-深圳市东信高科自动化设备有限公司 | 中药二氧化硫测定仪,食品二氧化硫测定仪|俊腾百科 | 哈希PC1R1A,哈希CA9300,哈希SC4500-上海鑫嵩实业有限公司 | 深圳货架厂_仓库货架公司_重型仓储货架_线棒货架批发-深圳市诺普泰仓储设备有限公司 | 破碎机_上海破碎机_破碎机设备_破碎机厂家-上海山卓重工机械有限公司 | 气动隔膜泵-电动隔膜泵-循环热水泵-液下排污/螺杆/管道/化工泵「厂家」浙江绿邦 | 合肥地磅_合肥数控切割机_安徽地磅厂家_合肥世佳电工设备有限公司 | 新材料分散-高速均质搅拌机-超声波分散混合-上海化烁智能设备有限公司 | 加盟店-品牌招商加盟-创业项目商机平台 | 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 盐水蒸发器,水洗盐设备,冷凝结晶切片机,转鼓切片机,絮凝剂加药系统-无锡瑞司恩机械有限公司 | 合肥废气治理设备_安徽除尘设备_工业废气处理设备厂家-盈凯环保 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 硅PU球场、篮球场地面施工「水性、环保、弹性」硅PU材料生产厂家-广东中星体育公司 | 喷码机,激光喷码打码机,鸡蛋打码机,手持打码机,自动喷码机,一物一码防伪溯源-恒欣瑞达有限公司 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 齿辊分级破碎机,高低压压球机,立式双动力磨粉机-郑州长城冶金设备有限公司 | 便携式谷丙转氨酶检测仪|华图生物科技百科 | 深圳法律咨询【24小时在线】深圳律师咨询免费 | 包头市鑫枫装饰有限公司| 挤出熔体泵_高温熔体泵_熔体出料泵_郑州海科熔体泵有限公司 | 石家庄装修设计_室内家装设计_别墅装饰装修公司-石家庄金舍装饰官网 | 南京租车,南京汽车租赁,南京包车,南京会议租车-南京七熹租车 |