草庐IT

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

JasmynLove 2023-04-04 原文

一.配置密码策略

登录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%';

有关关于MySQL5.7 密码策略/审计日志开启详细步骤的更多相关文章

  1. 使用canal同步MySQL数据到ES - 2

    文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co

  2. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  3. ruby - cucumber 特征和步骤定义 - 2

    我是Cucumber测试的新手。我创建了两个特征文件:events.featurepartner.feature并将我的步骤定义放在step_definitions文件夹中:./step_definitions/events.rbpartner.rbCucumber似乎在所有.rb文件中查找步骤信息。有没有办法限制该功能查看特定的步骤定义文件?我之所以要这样做,是因为即使我使用了--guess标志,我也会遇到不明确的匹配错误。我之所以要这样做,有以下几个原因。我正在测试CMS,并希望在不同的功能中测试每种不同的内容类型(事件和合作伙伴)。事件.特征Feature:AddpartnerA

  4. ruby-on-rails - 在 Rails 中自定义 "Password confirmation doesn' t 匹配密码 - 2

    有没有办法在Rails中为确认字段自定义消息?例如在设计中我必须输入密码和password_confirmation并且错误消息是:Passwordconfirmationdoesn'tmatchPassword我可以更改事件记录语言环境消息(“不匹配”),但它会在该语言环境消息的开头和结尾输出密码确认和密码,所以我得到如下内容:"PasswordconfirmationmustmatchPassword"有没有办法将其更改为不同的字符串?PasswordconfirmationandPasswordmustmatch.编辑另一件事是拥有完全自定义的消息,例如:'Setpassword

  5. ruby-on-rails - 无法安装 mysql2 0.3.14 gem - 2

    我看到其他人也遇到过类似的问题,但没有一个解决方案对我有用。0.3.14gem与其他gem文件一起存在。我已经完全按照此处指示完成了所有操作:https://github.com/brianmario/mysql2.我仍然得到以下信息。我不知道为什么安装程序指示它找不到include目录,因为我已经检查过它存在。thread.h文件存在,但不在ruby​​目录中。相反,它在这里:C:\RailsInstaller\DevKit\lib\perl5\5.8\msys\CORE\我正在运行Windows7并尝试在Aptana3中构建我的Rails项目。我的Ruby是1.9.3。$gemin

  6. ruby-on-rails - 关于 Ruby 的一般问题 - 2

    我在我的rails应用程序中安装了来自github.com的acts_as_versioned插件,但有一段代码我不完全理解,我希望有人能帮我解决这个问题class_eval我知道block内的方法(或任何它是什么)被定义为类内的实例方法,但我在插件的任何地方都找不到定义为常量的CLASS_METHODS,而且我也不确定是什么here,并且有问题的代码从lib/acts_as_versioned.rb的第199行开始。如果有人愿意告诉我这里的内幕,我将不胜感激。谢谢-C 最佳答案 这是一个异端。http://en.wikipedia

  7. ruby - Sinatra 中的全局救援和日志记录异常 - 2

    如何在出现异常时指定全局救援,如果您将Sinatra用于API或应用程序,您将如何处理日志记录? 最佳答案 404可以在not_found方法的帮助下处理,例如:not_founddo'Sitedoesnotexist.'end500s可以通过调用带有block的错误方法来处理,例如:errordo"Applicationerror.Plstrylater."end错误的详细信息可以通过request.env中的sinatra.error访问,如下所示:errordo'Anerroroccured:'+request.env['si

  8. ruby - 如何使用 ruby​​ mysql2 执行事务 - 2

    我已经开始使用mysql2gem。我试图弄清楚一些基本的事情——其中之一是如何明确地执行事务(对于批处理操作,比如多个INSERT/UPDATE查询)。在旧的ruby-mysql中,这是我的方法:client=Mysql.real_connect(...)inserts=["INSERTINTO...","UPDATE..WHEREid=..",#etc]client.autocommit(false)inserts.eachdo|ins|beginclient.query(ins)rescue#handleerrorsorabortentirelyendendclient.commi

  9. ruby-on-rails - 使用 Ruby 标准 Logger 每天只创建一个日志 - 2

    我正在使用ruby​​标准记录器,我想要每天轮换一次,所以在我的代码中我有:Logger.new("#{$ROOT_PATH}/log/errors.log",'daily')它运行完美,但它创建了两个文件errors.log.20130217和errors.log.20130217.1。如何强制它每天只创建一个文件? 最佳答案 您的代码对于长时间运行的应用程序是正确的。发生的事情是您在给定的一天多次运行代码。第一次运行时,Ruby会创建一个日志文件“errors.log”。当日期改变时,Ruby将文件重命名为“errors.log

  10. ruby - Cucumber/Savon 省略或删除日志输出 - 2

    在运行Cucumber测试时,我得到(除了测试结果)大量调试/日志相关的输出形式:D,[2013-03-06T12:21:38.911829#49031]DEBUG--:SOAPrequest:D,[2013-03-06T12:21:38.911919#49031]DEBUG--:Pragma:no-cache,SOAPAction:"",Content-Type:text/xml;charset=UTF-8,Content-Length:1592W,[2013-03-06T12:21:38.912360#49031]WARN--:HTTPIexecutesHTTPPOSTusingt

随机推荐