这是mysql的漏洞吗?

xpk 2002-12-18 09:58:54
我装mysql在win2k下面。奇怪的是在我修改了root密码后
在mysql的bin目录下面
使用如下命令
mysql -uroot-p
没有空格的,仍旧可以登陆
mysql -uroot -p这样就要输入密码,正常方式!好奇怪啊!
不会说这是mysql的漏洞吧!
...全文
68 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xpk 2002-12-26
  • 打赏
  • 举报
回复
谢谢shuixin13(犬犬(心帆)) 和swotcoder(苦 丁) 的精彩论述!本帖到此结贴!
shuixin13 2002-12-25
  • 打赏
  • 举报
回复
呵呵,IE5用的就是不顺,
总算升了级了,
:》
下面偶们来分析一下下


在你的授权表中有下列几个用户信息
+------------+----------+--------------------
| Host | User | Password
+------------+----------+--------------------
| localhost | root | 663512793da8ecd4
| % | root |
| localhost | |
+------------+----------+--------------------

MySQL服务器在启动时读入user表后会进行排序,
然后当一个用户试图连接时,
以排序的顺序浏览条目,第一个匹配条目的权限设置将被使用。

上例排序结果是

+------------+----------+--------------------
| Host | User | Password
+------------+----------+--------------------
| localhost | root | 663512793da8ecd4
| localhost | |
| % | root |
+------------+----------+--------------------

当使用 mysql -uroot-p 登录时,
你所匹配的就是第二个用户权限了




Host
Host列值可以是一个主机名、一个IP地址或'localhost'指出本地主机。
你可以在Host字段里使用通配符字符“%”和“_”。
%值匹配所有主机,并可用于允许一个用户从任何地方连接。一个空白的Host值等同于%。
如%wisc.edu匹配任何wisc.edu域内的主机,而%.edu匹配任何教育学院的主机。
类似地,192.168.%匹配任何在192.168 B类子网的主机,
而192.168.3.%匹配任何在192.168.3 C类子网的主机。
(例外:在db表中,一个空白Host值含义是“进一步检查host表”)

User
用户名必须是文字的或空白。
User字段中不支持通配符,但是你能指定一个空白值匹配任何用户。
%作为一个User值并不意味着空白,相反地它匹配一个字面上的%名字,这可能不是你想要的。

Password
口令值可以是空或非空,不允许用通配符。
一个空口令并不意味着匹配任何口令,它意味着用户连接服务器时不得指定口令。
口令是以一个加密过的值存储的,而不是一个字面上的文本。
如果你在Password列中存储一个实际字面上的口令,用户将不能连接!
GRANT语句和mysqladmin password命令为你自动加密口令,
但是如果你用诸如INSERT、REPLACE、UPDATE或SET PASSWORD等命令,
一定要用PASSWORD("new_password")函数而不是简单的"new_password"来指定口令。
例如 UPDATE user SET Password=PASSWORD('your password') WHERE User='root';
shuixin13 2002-12-25
  • 打赏
  • 举报
回复
+-------------+------------+-------------+----
| Host | User | Password |
+-------------+------------+-------------+----
| localhost | | |
+-------------+------------+-------------+-----
呵呵,你实际登录时
用户权限是匹配的这一个,

等一下,偶来详细分析一下,
xpk 2002-12-25
  • 打赏
  • 举报
回复
呵呵 真的如 shuixin13(犬犬(心帆))所言 ,那这里怎么有2个root用户啊
一个密码为空 ,而且2这权限都一样啊!
xpk 2002-12-25
  • 打赏
  • 举报
回复
mysql.user 呵呵 贴出来了!全部如下
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv
localhost root 663512793da8ecd4 Y Y Y Y Y Y Y Y Y Y Y Y Y Y
% root Y Y Y Y Y Y Y Y Y Y Y Y Y Y
localhost Y Y Y Y Y Y Y Y Y Y Y Y Y Y
% N N N N N N N N N N N N N N
xpk 2002-12-25
  • 打赏
  • 举报
回复
swotcoder(苦 丁) 的说法有道理
原来直接用mysql即可登陆
或者mysql -u任意用户名 即是空密码登陆
谢谢各位的解答!
swotcoder 2002-12-25
  • 打赏
  • 举报
回复
root存在2条是默认的,也可以加上更多条。mysql的权限管理非常灵活,你可以依照 [ 用户名 主机 密码 数据库 表格 ]根据自己需要自行组合适当的访问权限。
默认下root % 和 root localhost 是相同的权限,唯一的区别是 % 代表任何主机 localhost 代表本机。
swotcoder 2002-12-25
  • 打赏
  • 举报
回复
mysql -uroot-p 这个命令行所代表的意思是以root-p这个用户名登陆系统,因为-p是同root连接在一起写的所以系统所认定的是root-p这个字符作为-u的参数,也就是用户名为root-p。如上所说既然-p被当作用户名的一部分,所以系统并不会询问你密码输入,而是以root-p的身份空密码进行登陆。
但是为什么会登陆到系统中吗?系统中正的存在root-p这个用户吗?答案是否定的!mysql默认的授权表格中有一条 user % host localhost password [空],这句的意思是允许来自本机的任何用户以guest权限空密码访问mysql。

也就是说mysql -uroot-p的在这里是root-p这个用户guest权限空密码访问本地数据库。

如果从授权表格中删除了user % host localhost password [空] 则mysql -uroot-p 无法登陆。
shuixin13 2002-12-23
  • 打赏
  • 举报
回复
呵呵,
等了好多天,
这位老兄也没将授权表内容帖出来,
:《

正如 swotcoder(苦 丁)所述,
登录所匹配的用户权限并不是同一项
在我以为他的授权表里应该有下面两个记录中的一个
+-------------+------------+-------------+----
| Host | User | Password |
+-------------+------------+-------------+----
| localhost | | |
| % | | |
+-------------+------------+-------------+-----
呵呵,最大可能是第一个了,
MySQL在安装完后就默认有第一个用户


在MySQL授权表运作时,
会对其内容进行一次排序,
而这种排序并不如我们正常所想像的按字母顺序排的,
而是按值域的大小来排序的,
这可能对用户进行权限管理时会产生疑惑
swotcoder 2002-12-22
  • 打赏
  • 举报
回复
不是,第一个命令没有空格连在一起登陆的实际是root-p这个用户名
shuixin13 2002-12-22
  • 打赏
  • 举报
回复
呵呵,
眼见为实嘛
xpk 2002-12-22
  • 打赏
  • 举报
回复
我查看了mysql.user的内容,里面只有我自己添加的合法用户!
shuixin13 2002-12-19
  • 打赏
  • 举报
回复
将 mysql.user 内容帖出来,
偶们分析一下下
xpk 2002-12-19
  • 打赏
  • 举报
回复
能仔细谈谈两者权限的区别吗?
好象建立database
建立table上好象都可以啊!
shuixin13 2002-12-18
  • 打赏
  • 举报
回复
mysql -uroot-p

登录时与
mysql -uroot -p
登录所匹配的用户权限并不是同一项

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧