关于MySQL5.7 密码策略/审计日志开启详细步骤

一.配置密码策略

登录mysql:mysql -u root -p;

输入密码:xxxxxx(以实际情况为例,例如:123456)


目标密码策略:至少一个大写、至少一个小写、至少一个数字、至少一个字符、长度至少8位、60天密码过期。

我的版本号: 5.7.21


1.查看当前配置
show variables like 'validate_password%';

2.查看现有插件

查看插件的路径  show variables like 'plugin_dir'; 

cd /usr/local/mysql/lib/plugin

ll  查看文件详细信息,有需要的“validate_password.so”这个插件,如下图所示:

 3.添加插件

修改my.cnf,插件库的文件名是validate_password.文件名后缀根据平台的不同而不同(例如,linux是.so 对于Windows是.dll);linux添加,如下图所示:

重启 service mysqld restart  后再次查询show variables like 'validate_password%' 结果如下图。

安装了密码插件后也可以直接修改了

--可以使用以下命令进行修改
--密码验证策略低要求(0或LOW代表低级)
set global validate_password.policy=MEDIUM;

--密码至少要包含的小写字母个数和大写字母个数
set global validate_password.mixed_case_count=1;

--密码至少要包含的数字个数。
set global validate_password.number_count=1; 

--密码至少要包含的特殊字符数
set global validate_password.special_char_count=1; 

-- 密码长度
set global validate_password.length=8; 
4.密码策略详细配置

密码策略变量含义:

validate_password.policy:密码策略,检查用户的密码。

        0:(Low)密码长度最少8个字符

        1:(Mediumpolicy)至少包含1个数字,1个小写字母,1个大写字母和1个特殊字符组成(默认值)

        2:(Strongpolicy)长度为4或更长的密码子字符串不得与字典文件中的单词匹配

validate_password.length:需要密码最小字符数,默认为8

validate_password.number_count:需要密码的最小数字字符数,默认为1

validate_password.mixed_case_count:需要密码的小写和大写的最小字符数,默认为1

validate_password.special_char_count:需要密码的特殊字符的最小字符数,默认为1

validate_password.dictionary_file:用于检查密码的字典文件的路径名,默认没有
 

二.开启数据库审计日志

1.部署方法

登录MySQL,执行以下命令获取MySQL的plugin目录:

SHOW GLOBAL VARIABLES LIKE '%plugin_dir%';

在/usr/local/mysql/lib/plugin  目录下查看是否又插件server_audit.so,如果没有需要先下载插件再进行安装,server_audit.so

链接:https://pan.baidu.com/s/1LBcbYqMG6eFASK5GrCmSzA 
提取码:0kgc

下载mariadb-5.5.68-linux-x86_64.tar.gz,解压后获取mariadb-5.5.68-linux-x86_64/lib/plugin/server_audit.so)

2.将 server_audit.so 插件上传到 /data/mysql/lib/plugin 下,如下图所示:

3.在mysql中执行以下命令,登录  mysql -u root -p;安装插件:

INSTALL PLUGIN server_audit SONAME 'server_audit.so';

4.查看变量开启情况,默认都是关闭:

show variables like '%audit%';

 5.开启审计功能,默认为off:

set global server_audit_logging=on;

6.上述开启日志审计配置后,立即生效,重启mysql服务后,配置会失效,需要重新设置。如果想永久生效,可以在mysql配置文件 /etc/my.cnf 中 [mysqld] 下添加 server_audit_logging=on ,然后重启mysql服务即可。

7.查看审计日志:审计日志默认存储路径为:mysql/data/server_audit.log

8.关于审计插件其他参数配置说明如下:

详细请参考:https://mariadb.com/kb/en/mariadb/server_audit-system-variables/

参数含义
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将不受该设置影响

三.mysql查询慢日志/错误日志

/查询慢查询时间
show variables like "long_query_time";默认10s 
//查看慢查询配置情况
show status like "%slow_queries%"; 
//查看慢查询日志路径
show variables like "%slow%";

修改配置文件

在my.ini中加上下面两句话

slow-query-log=On
slow_query_log_file=D:/mysql-5.7.12/data/mysql_slow_query.log
long_query_time=0.0001
log_queries_not_using_indexes = ON

执行如下SQL语句来查看mysql慢查询的状态

show variables like '%slow%';

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值