欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

为什么任意用户名都可以访问mysql下的test数据库?

程序员文章站 2022-05-11 10:53:19
...

今天突然发现本地的mysql可以通过任意用户名访问到其中两个数据库,为什么会这样?
为什么任意用户名都可以访问mysql下的test数据库?

为什么任意用户名都可以访问mysql下的test数据库?

如图一:任意用户名都可以访问到这两个数据库
如图二:用户名随意写,只要密码不写都可以访问,但写了后就不能登录成功

补充:
上面是昨天的提问,今天我再去登录的时候却发现不存在的用户名不能登录了,怎么这么奇怪?为什么昨天可以?
为什么任意用户名都可以访问mysql下的test数据库?

补充说明一下:
现在问题解决了,还是自己犯的小错误:
一是空用户名的话,就是任意用户名都可以访问,我之前一直以为对应空用户名才对,其实不是这样的;
二是它所对应的密码为空,所以,我输了密码就不能登录;
三是我删除空用户名用户后还是这样,因为没有重启mysql!!!!(哎,发现犯过几次这样的错误了!)
今天开电脑后,发现"正常"了,因为电脑“重启”了!

回复内容:

今天突然发现本地的mysql可以通过任意用户名访问到其中两个数据库,为什么会这样?
为什么任意用户名都可以访问mysql下的test数据库?

为什么任意用户名都可以访问mysql下的test数据库?

如图一:任意用户名都可以访问到这两个数据库
如图二:用户名随意写,只要密码不写都可以访问,但写了后就不能登录成功

补充:
上面是昨天的提问,今天我再去登录的时候却发现不存在的用户名不能登录了,怎么这么奇怪?为什么昨天可以?
为什么任意用户名都可以访问mysql下的test数据库?

补充说明一下:
现在问题解决了,还是自己犯的小错误:
一是空用户名的话,就是任意用户名都可以访问,我之前一直以为对应空用户名才对,其实不是这样的;
二是它所对应的密码为空,所以,我输了密码就不能登录;
三是我删除空用户名用户后还是这样,因为没有重启mysql!!!!(哎,发现犯过几次这样的错误了!)
今天开电脑后,发现"正常"了,因为电脑“重启”了!

你看看test数据库的用户权限,就是允许任何用户访问的。

用 root 账号登录,然后

select * from mysql.user \G

看看是不是有两列的 user 是空的。也就是任意用户。

正如justjavac所说的,test数据库的权限是完全开放的,因此存在一定的风险,线上数据库使用很可能会把这个库人为删除的~

相关标签: mysql php