一.配置密码策略
登录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%';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)