在MySQL的日常管理中,密码安全直接关系到数据库的使用,DBA应该在密码管理上特别重视。
密码面临的风险
用户使用密码时,会面临如下风险:
注:社会工程意为利用人们在社会中的各种行为、心理、活动等,配上信息技术手段,来获取黑客想要的各种信息。
针对以上风险,MySQL的DBA可以利用如下方法进行防范,降低风险。
攻击者推导密码的方法
密码在通常情况下通过哈希算法进行处理,但攻击者仍可以通过如下方法推导出密码。
MySQL的密码验证组件
MySQL提供了密码验证组件,用以提高密码的安全性。该组件的安装文件名为“component_validate_password.so”保存在“plugin_dir”变量指定的路径下。组件安装成功后,该组件提供几个变量,通过对变量进行设置,以达到不同级别的密码安全要求。
validate_password.policy:强制开启验证密码,默认值为1(MEDIUM),检查密码的长度、数字、小写/大写和特殊字符。如果设置为2(STRONG)需要额外检查字典文件(与字典中的字符匹配将无法作为密码使用),并需要通过"validate_password.dictionary_file“变量指定字典文件。
validate_password.check_user_name:用于检查密码中是否包含用户名,默认情况下开启。
用户可以动态配置变量值,例如,
mysql> SET GLOBAL validate_password.policy = 2;
mysql> SET GLOBAL validate_password.length = 12;
也可以将变量值写入配置文件,持久化保存。
与之相关联的变量可以通过SHOW语句查看:
mysql> SHOW VARIABLES LIKE 'validate_password.%';
+-------------------------------------------------+--------+
| Variable_name | Value |
+-------------------------------------------------+--------+
| validate_password.changed_characters_percentage | 0 |
| 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 |
+-------------------------------------------------+--------+
MySQL用户除了使用上述的密码验证组件强化密码,还可以考虑从以下两方面增加密码的安全性:
本文分享自 MySQL解决方案工程师 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有