二级等保实战:MySQL安全加固

身份鉴别

空闲至多30分钟自动超时退出

打开 RDS 控制台,进入实例详情页面,点击左侧"参数设置",找到 "wait_timeout",默认参数值为 86400,改为 1800,修改完成后点击提交。

这样,用户空闲 30 分钟后,会自动退出登录。

登录失败处理策略

登录失败10次以内,锁定5分钟以上

需要 MySQL 8.0.19+ 才支持 FAILED_LOGIN_ATTEMPTS 和 PASSWORD_LOCK_TIME。

使用 高权限账号/root 账号,登录 MySQL,执行以下 SQL 语句:

sql 复制代码
ALTER USER 'test_user'@'%'
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LOCK_TIME 1;

上面的意思是说,用户 test_user 在 10 次登录失败后,锁定 1 天。

需要注意的时,PASSWORD_LOCK_TIME 单位是天,不是分钟,且只能为整数。

使用下面的命令验证设置是否生效:

sql 复制代码
SELECT
   User, User_attributes
FROM mysql.user
WHERE user = 'test_user';

解除锁定命令:ALTER USER 'test_user'@'%' ACCOUNT UNLOCK;

限制口令期限

口令限制至多90天

使用 高权限账号/root 账号,登录 MySQL,执行以下 SQL 语句:

sql 复制代码
ALTER USER 'test_user'@'%' PASSWORD EXPIRE INTERVAL 90 DAY;

验证是否生效:

sql 复制代码
SELECT user, host, password_expired, password_lifetime, password_last_changed
FROM mysql.user
WHERE user = 'test_user';

限制默认账户远程

打开 RDS 控制台,进入实例详情页面,点击数据库连接,点击"关闭外网地址"。

加密远程协议

数据库:使用SSL协议远程管理;

打开 RDS 控制台,进入实例详情页面,点击"数据安全性",在 SSL 设置处,开启 SSL 证书信息,点击确定

数据库审计

打开 RDS 控制台,进入实例详情页面,点击"自治服务",找到"安全审计",点击开启安全审计

审计数据存储时长选择180天,点击提交

开启成功后,点击"开始使用"

然后就进入了查看界面

相关推荐
alexhilton36 分钟前
将应用迁移到Navigation 3:痛点、加班和紧急修复
android·kotlin·android jetpack
米小虾2 小时前
AI Agent 安全实战指南:当智能体开始"不听话",开发者该如何应对?
人工智能·安全·agent
这个DBA有点耶5 小时前
NULL不是空——数据库里最反直觉的设计,90%新人踩过的坑
数据库·mysql·代码规范
杉氧6 小时前
Navigation Compose 深度实践:如何优雅地串联起你的全栈 App?
android·架构·android jetpack
雨白10 小时前
指针与数组的核心机制
android
黄林晴14 小时前
Room 3.0 正式发布!包名彻底重构,KMP 成为核心主线
android·android jetpack
三少爷的鞋15 小时前
Kotlin 协程环境下的 DCL 懒加载:别把线程时代的经验直接搬过来
android
tntxia15 小时前
网络安全漏洞修复(一)
安全
plainGeekDev15 小时前
Gson → kotlinx.serialization
android·java·kotlin