Mysql安全之基础合规

一、背景

某次某平台进行安全性符合型评估时,列出了数据库相关安全选项,本文特对此记录,以供备忘参考。

二、安全配置

2.1、数据库系统登录时的用户进行身份标识和鉴别;

1)对登录Mysql系统用户的密码复杂度是否有要求?

即需要满足密码复杂度要求,至少8位长度,大小写各1个,数字2个,特殊字符至少1个,密码有效期3个月。现场版本5.7.34;Mysql 5.6后自带validate_password.so插件(windows为validate_password.dll)

bash 复制代码
//检查是否启用命令,如果啥也没返回,就是没启用
mysql> SHOW VARIABLES LIKE 'validate_password%';
mysql> SELECT * from mysql.plugin ;
mysql> show plugins;

#安装插件
mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so'; #Linux
mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.dll';  #windows

#验证
mysql> SELECT * from mysql.plugin ;

#创建一个名为password_policy的新表,用于存储密码策略的相关信息
CREATE TABLE password_policy (
  id INT PRIMARY KEY AUTO_INCREMENT,
  uppercase_required BOOLEAN NOT NULL,
  lowercase_required BOOLEAN NOT NULL,
  number_required BOOLEAN NOT NULL,
  special_character_required BOOLEAN NOT NULL,
  min_length INT NOT NULL
);

完成后修改配置文件写入:

bash 复制代码
plugin-load-add=validate_password.so
validate-password=ON
validate_password_policy = 1   ##0(LOW), 1 (MEDIUM), 2 (STRONG)
validate_password_length = 8
validate_password_mixed_case_count = 1  #大小写字符长度,至少1个
validate_password_number_count = 2
validate_password_special_char_count = 1  #特殊字符至少1个
default_password_lifetime=180

#验证测试密码符合度
SELECT VALIDATE_PASSWORD_STRENGTH('Ad32weak$_@123');

规则说明:详情参看官网说明

策略 检查规则
0 or LOW Length(满足长度要求)
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file

2)是否启用ssl:show variables like '%ssl%';

相关推荐
unicrom_深圳市由你创科技2 小时前
用 CTE 重构嵌套子查询:让复杂报表 SQL 可读性提升 80%
mysql·重构
NewCarRen3 小时前
整合STPA、ISO 26262与SOTIF的自动驾驶安全需求推导与验证
人工智能·安全·自动驾驶·预期功能安全
芯盾时代3 小时前
低空经济网络安全体系
安全·web安全
鹿鸣天涯3 小时前
关于进一步做好网络安全等级保护有关工作的问题释疑-【二级以上系统重新备案】、【备案证明有效期三年】
网络·安全·web安全
00后程序员张3 小时前
如何提高 IPA 安全性 多工具组合打造可复用的 iOS 加固与反编译防护体系(IPA 安全 iOS 加固 无源码混淆 Ipa Guard 实战)
android·安全·ios·小程序·uni-app·iphone·webview
小妖同学学AI3 小时前
Rust 深度解析:变量、可变性与所有权的“安全边界”
开发语言·安全·rust
准时准点睡觉4 小时前
window安装MYSQL5.5出错:a windows service with the name MYSQL alreadyexists....
数据库·windows·mysql
m0_738120724 小时前
网络安全编程——开发一个TCP代理Python实现
python·tcp/ip·安全·web安全·网络安全
安当加密5 小时前
安全登录多人共用的机密电脑:基于动态凭证与会话隔离的解决方案
安全·电脑
七月稻草人5 小时前
Rust 应用状态(App State)管理:类型安全与并发控制的艺术
开发语言·安全·rust