栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【bug记录】mysql弱口令登录问题,不输密码也可以登录

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【bug记录】mysql弱口令登录问题,不输密码也可以登录

项目场景:

登录远程 MYSQL 数据库


问题描述

登录mysql时,发现用户名输入弱命令 ‘r’ 甚至不输入就可以登录,并且查看表;

原因分析:

由于mysql用户信息存在"" 空串导致不输入账号密码也可以登录

排查过程:

登录mysql, 获得关于用户表的更多信息,可以使用下面的命令预览其列。

DESC user;

例如,要显示用户和其他信息 如账户锁定,密码到期状态,你使用以下查询:

SELECt 
    user, 
    host, 
    account_locked, 
    password_expired
FROM
    user;

或者简单查询mysql中存在哪些用户:

>mysql -u root -p
Enter password: 你的密码
mysql> use mysql;
Database changed
mysql> SELECt user FROM user;

然后执行
SELECt count(*) FROM user where user=‘’;
如果不等于0,则是存在user=''的情况


解决方案:
delete from user where user='' ;

拓展:
mysql删除用户的方法:

1、drop删除drop user XXX;

删除已存在的用户,默认删除的是’XXX’@'%‘这个用户,如果还有其他的用户如’XXX’@‘localhost’等,不会一起被删除。如果要删除’XXX’@‘localhost’,使用drop删除时需要加上host即drop
user ‘XXX’@‘localhost’。

2、delete删除delete from user where user=‘XXX’ and host=‘localhost’;

其中XXX为用户名,localhost为主机名。

区别

drop不仅会将user表中的数据删除,还会删除其他权限表的内容。而delete只删除user表中的内容,所以使用delete删除用户后需要执行FLUSH
PRIVILEGES;刷新权限,否则下次使用create语句创建用户时会报错。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1024701.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号