时隔大半年,终于想起来自己有这么一个博客了

以下的命令呢,仅供参考,部分命令可以用在MariaDB上,用不了也不能怪我

#---------------------身份认证--------------------------------------

#检查有什么用户,登录地址设在哪里,是否有空口令账户
SELECT user,host,authentication_string FROM mysql.user;

#检查密码复杂度
#validate_password_policy:密码安全策略,默认MEDIUM策略
#validate_password_dictionary_file:密码策略文件,策略为STRONG才需要
#validate_password_length:密码最少长度,最少8
#validate_password_mixed_case_count:大小写字符长度,至少1
#validate_password_number_count :数字至少1  
#validate_password_special_char_count:特殊字符至少1
SHOW variables LIKE 'validate%';

#查看密码有效期
SHOW GLOBAL VARIABLES LIKE 'default_password_lifetime';

#检查登录失败策略,比如错误多少次暂时锁定多少分钟
#connection_control_failed_connections_threshold 最大登陆的错误数
#connection_control_min_connection_delay #错误次数过多的锁定时间
#时间单位,毫秒,记得除以6万才是分钟
SHOW variables LIKE '%connection_control%';

#这一个也可以算是登录失败的策略,登陆错误到达这个次数,就会永久封禁
SHOW variables LIKE '%max_connect_errors%';

#这一个可以查看登陆超时的参数,即你登录进去多少分钟没操作就会退出登陆
#以秒作为单位
SHOW variables LIKE "wait_timeout";

#查看远程连接的参数设置
#第一条查看have_openssl和have_ssl,看SSL是否开启
#第二条看是否开启了安全传输
SHOW variables LIKE "%ssl%";
SHOW variables like 'require_secure_transport';

#---------------------访问控制--------------------------------------

#用于查询用户的权限
#root外,任何用户不应该有mysql库user表的存取权限,禁止将filprocess super权限授予管理员以外的账户
SHOW grants FOR '用户名'@'地址';

#查询用户的具体权限
SELECT * FROM information_schema.user_privileges WHERE grantee = "'用户'@'地址'";

#去查一下MySQL的配置文件、日志文件的权限

#---------------------安全日志--------------------------------------
#查看各类日志是否开启
SHOW VARIABLES 
WHERE Variable_name = '%log_output%'
OR Variable_name LIKE '%general_log%'
OR Variable_name LIKE '%log_bin%'
OR Variable_name LIKE '%log_error%';

#查看general日志
SELECT * FROM general_log;
#查看二进制日志
SHOW binary logs;
SHOW binlog events;
SHOW MASTER LOGS;
#查看slow_query日志
SELECT * 
FROM mysql.slow_log;
#错误日志要自己去找文件看


#---------------------入侵防范--------------------------------------
#查看版本
#或者退回到bash中,使用mysql --version或者mysql -V命令查看版本
STATUS
SELECT version();



#---------------------完整性--------------------------------------

#查看密码使用了什么哈希算法保证完整性
#mysql_native_password,使用带盐的SHA1算法加密
#caching_sha2_password,使用带盐的SHA256算法加密mysql8.0以上默认采用caching_sha2_password插件
#sha256_password,使用带盐的SHA256算法加密
#mysql_old_password,不符合要求,被截获可直接登录
SELECT user,plugin 
FROM mysql.user;