首頁 >後端開發 >php教程 >为什么任意用户名都可以访问mysql下的test数据库?

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

WBOY
WBOY原創
2016-06-06 20:21:521392瀏覽

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

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

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

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

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

回复内容:

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

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

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

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

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

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

用 root 账号登录,然后

<code class="sql">select * from mysql.user \G</code>

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

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn