MySQL系列之身份鉴别(安全)

CAS统一身份认证(四):集成MySQL用户验证 本文主要介绍CAS统一身份认证服务器的JDBC数据库认证功能,并以FreeBSD环境下的MySQL数据库为例实现了CAS 6.6版的数据库用户验证。主要包括CAS的数据库身份认证、MySQL数据库准备、用户验证属性配置文件、配置MySQL数据库支持,最后构建和测试CAS服务。 阅读详情
导览

前言

MySQL的身份鉴别是数据库安全的核心命题之一。在每日“拧螺丝”的工作中,我们的开发人员可能会忽略这个问题。正因如此,博主以这个契机,向大家做一次专题介绍。看过此文,相信你能够“上应付得了等保,下对得起公司”。

在这里插入图片描述

Q:如何保障MySQL数据库身份鉴别的有效性

提示:本文示例均已MySQL5.7为例,通过root用户执行相关命令。

如何保障MySQL数据库身份鉴别,有很多手段进行识别。博主通过SQL的方式,进行逐一介绍。

一、有效性检查

1. 用户唯一

检查授权的用户是否唯一:

SELECT USER, HOST FROM mysql.user;

2. 启用密码验证

检查PLUGIN是否包含*_password:

-- mysql_native_password,身份验证插件
SELECT USER, HOST, PLUGIN FROM mysql.user;

3. 是否存在空口令用户

检查authentication_string是否存在空值:

-- authentication_string,加密后密码,即执行password()后的值
SELECT USER, HOST, PLUGIN, authentication_string FROM mysql.user;

4. 是否启用口令复杂度校验

检查validate_password插件,是否已启用:

-- 如果为空,证明未启用该插件
SHOW VARIABLES LIKE 'validate%';

5. 是否设置口令的有效期

-- 默认0,永不过期
SHOW VARIABLES LIKE '%default_password_lifetime%';

6. 是否限制登录失败尝试次数

-- 如为空,代表未设置,可无限尝试
SHOW VARIABLES LIKE '%connection-control-failed-connections-threshold%';

7. 是否设置(超过尝试次数)锁定的最小时长

-- 如为空,代表未设置,永不锁定
SHOW VARIABLES LIKE '%connection-control-min-connection-delay%';

8. 是否设置保持登录的有效期

-- 默认0,代表永不退出登录
SHOW VARIABLES LIKE '%wait_timeout%';

二、应对方案

针对第一部分的有效性检查中,涉及不满足的配置项,我们可以通过以下措施加以弥补。

1. 空口令问题

如存在空口令,可通过root执行以下命令:

alter user [USER]@[HOST] identified by '[PASSWORD]';

2. 口令复杂度

如未启用口令复杂度,可能会遇到暴力破解,因此建议设置相关项。

2.1 安装插件

MySQL默认预留了口令复杂度插件:validate_password。我们只需要通过root用户安装即可:

INSTALL PLUGIN validate_password SONAME 'validate_password.so';

查看是否安装成功(如看到以下记录,代表成功):

SHOW VARIABLES LIKE 'validate%';

在这里插入图片描述

2.2 参数解释

为加深各位盆友的理解,博主对返回的参数加以说明。

2.2.1 validate_password_policy

MySQL的密码策略包含以下3种:
LOW 或 0
代表密码必须满足指定长度。
MEDIUM 或 1(默认)
代表密码必须至少包含1个大写字母、1个小写字母、1个数字和1个特殊字符。
STRONG 或 2
在满足MEDIUM的基础上,不允许存储在字典文件(dictionary file)中。

2.2.2 配套参数

参数名称

用途

validate_password_length

定义密码长度,默认8位,适用于LOW 策略。

validate_password_mixed_case_count

定义大、小写字母的个数,默认1,适用于非LOW策略。

validate_password_number_count

定义数字的个数,默认1,适用于非LOW策略。

validate_password_special_char_count

定义特殊字符的个数,默认1,适用于非LOW策略。

2.3 调整参数

掌握了参数特征后,我们可以按需调整相关参数的值,以满足安全需要,执行命令如下:

--必须以root身份执行,且拥有super权限。
set global [具体参数名称]=[VALUE];

3. 口令有效期

如满足口令定期更换的安全要求时,必须设置口令的有效期:

-- 必须以root身份执行,设置有效期为90天
set global default_password_lifetime=90;

4. 设置登录失败处理

假如要求你限制登录失败的次数以及失败次数达到上限后锁定用户,你该怎么办?先不急,且听博主分解。

4.1 安装插件

满足上述要求,需要安装MySQL自带的插件:connection_control,命令如下:

-- 必须以root身份执行
INSTALL PLUGIN CONNECTION_CONTROL SONAME 'connection_control.so';
INSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS SONAME 'connection_control.so';
4.2 参数解释

参数名称

用途

connection_control_failed_connections_threshold

登录失败尝试次数,默认3,如0代表不限制。

connection_control_max_connection_delay

登录失败次数满后,再次响应的最大延迟时间(毫秒),建议默认

connection_control_min_connection_delay

登录失败次数满后,再次响应的最小延迟时间(毫秒)。

4.3 调整参数

掌握了参数特征后,我们同样可以按需调整相关参数的值,执行命令如下:

--必须以root身份执行,且拥有super权限。
set global [具体参数名称]=[VALUE];

5. 设置登录保持时间

设置保持登录的有效期,过期自动退出登录状态:

-- 必须以root身份执行,设置保持登录的有效期为1800秒
set global wait_timeout=1800;

结语

本文通过案例介绍的方式,针对MySQL不同的安全场景,制定差异化的解决办法。当然完成该过程离不开MySQL自带的插件或访问控制能力。
走过的、路过的盆友们,点点赞,收收藏,并加以指导,以备不时之需哈~


精彩回放


MySQL系列之数据授权(privilege)
MySQL系列之如何在Linux只安装客户端
MySQL系列之如何正确的使用窗口函数(基于8.0版本)
MySQL系列之数据导入导出
MySQL系列之索引入门(上)
MySQL系列之索引入门(下)


在这里插入图片描述

mysql8.0身份验证 因此,如果客户端还是5.x版本连接,那么需要:ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';msyql5.x 版本中有个 password() 函数用于生成密码,该函数在 MySQL8 中已经被移除了。在MySQL 5.7中,默认的身份验证插件是 mysql_native_password。验证完毕,遇到mysql8.0身份验证问题的小伙伴,可参考文章进行操作。接下来我们在数据库中进行操作验证, 阅读详情

相关推荐

等保测评2.0:MySQL身份鉴别(上)

一、 说明 本篇文章主要说一下MySQL数据中身份鉴别控制点中a测评项的相关知识点和理解。 二、 MySQL用户 2.1. 用户身份标识 MySQL数据库对于用户的标识和其它数据库有些不一样,不仅仅是用户名,而是username + host。 MySQL数据中user表的一部分字段如下: 这三个用户的用户名虽然都是root,但其实是三个不同的用户,其密码也是单独设置的。 查询当前登录账户,也可以看到用户的标识组成为username+host: 2.2. 登录匹配机制 既然用户的标示是两个字段的组合,匹

jklbnm12的博客 1571

MySql数据库等保测评2.0

本次测评在windows10专业版上,mysql版本8.0.36,使用Navicat premium 16管理。

2302_76378481的博客 2111

探索MySQL身份验证插件:数据库安全的守护者

MySQL身份验证插件是数据库安全的关键组成部分,它通过哈希和加密用户密码,确保只有经过验证的用户才能访问数据库。通过使用MySQL提供的ALTER USER和CREATE USER命令,我们可以轻松地配置和管理身份验证插件。了解不同版本MySQL的默认身份验证插件,有助于我们更好地维护和优化数据库的安全性。

u013558123的博客 1786

使用mysql进行身份证校验

使用mysql校验身份证是否填写正确

dreamyflorasky的博客 3558

等保三级改造(MySQL)-1、身份鉴别

通过SSH登录服务器,然后通过命令行或Navicat等工具登录数据库,身份鉴别方式为用户名密码口令长度应在8位以上;口令复杂度需由数字、大小写字母、特殊字符2种或2种以上组合的方式;【需要安装插件validate_password】用如果需要卸载插件,执行如下指令安装后可通过命令查看已安装的MySQL插件:状态为ACTIVE表示已激活。再通过查询要求字符类型至少 3 种, SET GLOBAL validate_password_special_char_count = 3;

glisten0317的博客 54

Cass三角网法土方计算优化技巧:如何根据地形特点调整边界采样间距

本文深入探讨了Cass软件中三角网法(DTM法)土方计算的优化技巧,核心在于如何根据地形的复杂程度动态调整边界采样间距。针对平坦、复杂及人工构造物等不同地形特征,提供了具体的间距调整策略与精度验证方法,旨在帮助工程师在计算精度与效率间找到最佳平衡,实现精细化土方计算。

weixin_29294975的博客 524

阿里基线安全

风险名称 检查项分类 检查项名称 检查项描述 风险等级 修复建议 阿里云标准-CentOS Li 身份鉴别 密码复...

大脸猫脸大 629

FMCW毫米波雷达原理一

1、简介 毫米波雷达的优点是角分辨率高、频带宽因而有利于采用脉冲压缩技术、多普勒颇移大和系统的体积小。目前笔者接触到的有24G毫米波雷达和77G毫米波雷达。 24G毫米波雷达主要应用在交通领域的测距和车辆测速,在其他领域也有使用24G毫米波雷达。 77G毫米波雷达主要应用在无人驾驶,汽车周围的目标检测等领域。 在首次接触雷达时,一头雾水。搞不清一个chirp的时域图和频域图的关系、中频信号以及其他名词的基本概念。在TI培训官网上看到一些毫米波雷达原理的视频才豁然开朗。TI培训官网毫米波传感介绍 本文主要是通

擎天柱工坊 8144

mysql基线检查工具_阿里云标准-Mysql安全基线检查

禁用local-infile选项 | 访问控制描述禁用local_infile选项会降低攻击者通过SQL注入漏洞器读取敏感文件的能力加固建议编辑Mysql配置文件/my.cnf,在mysqld 段落中配置local-infile参数为0,并重启mysql服务:local-infile=0删除'test'数据库 | 服务配置描述测试数据库可供所有用户访问,并可用于消耗系统资源。删除测试数据库将减少M...

weixin_39805529的博客 278

等保三级-MySQL 安全加固实战指南

本文详细介绍了MySQL数据库在等保三级要求下的安全加固实战指南,涵盖身份鉴别、访问控制、安全审计、网络传输安全、入侵防范和数据完整性等关键领域。通过具体配置示例和实战经验,帮助用户有效提升MySQL数据库的安全防护能力,满足等保三级合规要求。

weixin_29197835的博客 183

在线机器学习(OML-AD)应对时序数据概念漂移的异常检测实战

时序数据异常检测是监控系统健康、识别业务风险的核心技术。其基本原理是通过预测模型学习数据的正常模式,并将预测误差作为异常判定的依据。然而,当数据背后的统计规律随时间发生变化,即发生概念漂移时,传统的静态模型会失效,导致误报和漏报激增。在线机器学习技术通过增量学习,使模型能够随每个新数据点实时微调,为预测式异常检测提供了动态适应能力,从而在数据流持续演化的场景下保持检测的鲁棒性。这种将预测与检测无缝衔接的OML-AD框架,尤其适用于工业监控、金融风控等对实时性与资源效率要求高的领域,有效解决了概念漂移这一核心

weixin_29889665的博客 532

等保测评命令——华为 GaussDB 系列

本文基于GB/T22239-2019等保三级要求,针对华为GaussDB系列数据库提供了一套可直接落地的安全配置检查清单。内容包括身份鉴别(空口令检查、密码复杂度等)、访问控制(三权分立、权限管理等)、安全审计(审计开关、日志保护等)等8个安全控制点的测评命令和达标判据。所有命令已在openGauss3.1.0/GaussDBT1.4.x/GaussDBA2.0环境验证通过,并附一键巡检脚本。重点要求:审计必须启用、三权分立严格实施、异地备份必须配置。对于高风险项(如审计未启用)直接判定不符合三级要求。

好学分子的博客 820

uniapp(微信小程序):实现PDF在线预览+在线预览pdf文件完整示例源码,支持文件来源:服务器pdf外链URL预览、调用后端API接口获取PDF文件流二进制下载及解析打开、上传本地PDF文件预览

uni-app实现PDF预览功能,uniapp微信小程序预览PDF,uniapp开发微信小程序在线预览pdf等文件,uniApp微信小程序实现PDF在线预览,Uniapp app在线预览pdf文件流,微信小程序实现pdf预览(苹果安卓兼容),uniapp-微信小程序 实现pdf外链在线预览,uniapp小程序如何做在线预览pdf功能,uniapp小程序端 实现pdf文件预览,微信小程序(uniapp)PDF预览完整实现方案示例demo源码,uni-app预览PDF,小程序pdf预览插件插件,Uniapp微信

✅ 精选推荐文章 4704

OceanBase 安全体系解析之身份鉴别

​ 本文以MySQL为参照,详细阐述了OceanBase在MySQL模式下的安全体系中,身份鉴别的能力,涵盖了身份鉴别机制、用户名的构成规则、密码的复杂度,以及密码过期策略的等方面

OceanBase分布式数据库的博客 1812

如何实现一个用STM32F103C8T6作为主控芯片,加上AD8232、MAX30102 、MPU6050模块的用于运动中监测心率变异性??

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1213

【深度学习新浪潮】Qwen门控注意力斩获NeurIPS 2025最佳论文!技术解析与代码实现

Qwen团队的门控注意力机制获得NeurIPS 2025最佳论文,不仅是中国AI研究的重大突破,更是大模型架构创新的重要里程碑。这项研究证明,通过巧妙的架构设计,可以在不显著增加计算成本的前提下,大幅提升模型性能。正如论文所展示的,用一个极其简单的改动,同时解决了Transformer架构中的多个核心问题,这正是优秀研究的价值所在。该技术已成功应用于Qwen3大模型,为通义千问系列产品的性能提升提供了坚实的技术支撑。轻量化大模型设计多模态统一架构专用领域大模型优化边缘计算场景部署。

专注:太空算力、AI infra、异构调度、大模型成本工程 570
上一篇: 你还在手动画ER图吗?让SQL自动生成ER图,轻松解决作业难题!
下一篇: pgsql:connection failed connection to server at “1“, port 5432 failed “postgres“ P
普通网友
博客等级 码龄4年 3126粉丝 192原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值