MySQL安全相关配置

MySQL安全相关配置

MySQL设置密码复杂度

MySQL5.6.6版本之后增加了密码强度验证插件validate_password,相关参数设置的较为严格。使用了该插件会检查设置的密码是否符合当前设置的强度规则,若不满足则拒绝设置。

MySQL默认没有安装这个插件,我们可以通过如下方式查看

SELECT * from mysql.`plugin`
# 或者
show plugin;

安装插件

查看插件文件存放位置

SHOW GLOBAL VARIABLES LIKE 'plugin_dir';

一般情况是在mysql安装路径下的lib/plugin目录,完整安装版默认是带有插件文件validate_password.dll的,如没有需要先将插件文件放入改目录下后再进行安装操作。

安装插件

-- 添加
INSTALL PLUGIN validate_password SONAME 'validate_password.dll';

-- 卸载
UNINSTALL PLUGIN validate_password;

查看默认策略

show variables like 'validate_password%';

修改策略

-- 将策略要求置为LOW,长度要求置为1
set global validate_password_policy=0;
set global validate_password_length=1;

各参数说明

  • validate_password_policy:密码安全策略,默认MEDIUM策略
策略 检查规则
0 or LOW 长度
1 or MEDIUM 长度;数字,字母大小写,特殊符号;
2 or STRONG 长度;数字,字母大小写,特殊符号;密码策略文件
  • validate_password_dictionary_file:密码策略文件,策略为STRONG才需要

  • validate_password_length:密码最少长度

  • validate_password_mixed_case_count:大小写字符长度,至少1个

  • validate_password_number_count :数字至少1个

  • validate_password_special_char_count:特殊字符至少1个

MySQL添加审计功能

mysql的审计功能,主要可以记录下对数据库的所有操作,包括登录、连接、对表的增删改查等,便于责任追溯,问题查找,当然一定方面也会影响数据库效率。

获取审计插件

获取插件并将其拷贝到到自己的mysql插件库下(位置参考上面validate_password说明),审计的插件的主要有以下三个:

McAfee MySQL Audit Plugin源码编译好的二进制文件 只有linux版本,不知怎么编译出windows版本。 Percona Audit Log Plugin地址:不了解 MariaDB Audit Plugin下载地址:MariaDB版本自带审计功能插件,所有可以通过MariaDB官网下载对应版本(版本对应很重要,不然安装会失败,成功了也可能导致数据库崩溃)的安装包,从安装包中获得版本对应的.dll插件(linux系统.so插件),拷贝到到自己的mysql插件库下,安装插件,开启审计功能,配置my.ini文件。

安装审计插件

-- 	安装
INSTALL PLUGIN server_audit SONAME 'server_audit.dll';
-- 卸载
UNINSTALL PLUGIN server_audit;

查看参数配置

show variables like '%audit%';

修改参数

-- 备注:指定哪些操作被记录到日志文件中
set global server_audit_events='CONNECT,QUERY,TABLE,QUERY_DDL'

-- 备注:开启审计功能
set global server_audit_logging=on

-- 备注:默认存放路径,可以不写,默认到data文件下
set global server_audit_file_path =/data/mysql/auditlogs/

-- 备注:设置文件大小
set global server_audit_file_rotate_size=200000000

-- 指定日志文件的数量,如果为0日志将从不轮转
set global server_audit_file_rotations=200

-- 强制日志文件轮转
set global server_audit_file_rotate_now=ON

各个参数说明

  • server_audit_output_type:指定日志输出类型,可为SYSLOG或FILE
  • server_audit_logging:启动或关闭审计
  • server_audit_events:指定记录事件的类型,可以用逗号分隔的多个值(connect,query,table),如果开启了查询缓存(query cache),查询直接从查询缓存返回数据,将没有table记录
  • server_audit_file_path:如server_audit_output_type为FILE,使用该变量设置存储日志的文件,可以指定目录,默认存放在数据目录的server_audit.log文件中
  • server_audit_file_rotate_size:限制日志文件的大小
  • server_audit_file_rotations:指定日志文件的数量,如果为0日志将从不轮
  • server_audit_file_rotate_now:强制日志文件轮转
  • server_audit_incl_users:指定哪些用户的活动将记录,connect将不受此变量影响,该变量比server_audit_excl_users优先级高
  • server_audit_syslog_facility:默认为LOG_USER,指定facility
  • server_audit_syslog_ident:设置ident,作为每个syslog记录的一部分
  • server_audit_syslog_info:指定的info字符串将添加到syslog记录
  • server_audit_syslog_priority:定义记录日志的syslogd priority
  • server_audit_excl_users:该列表的用户行为将不记录,connect将不受该设置影响
  • server_audit_mode:标识版本,用于开发测试

打赏一个呗

取消

感谢您的支持!!!

扫码支持
扫码支持
扫码打赏

打开支付宝或微信扫一扫,即可进行扫码打赏哦