【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语句创建用户时会报错。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值