jiandaoxu 发表于 2005-4-22 09:11:35

mysql password()函数的一个问题,请大家帮帮忙

我的操作系统是RED HAT AS4,MYSQL的版本是4.1.7(就是RED HAT AS4原有的)。

我用如下这个SELECT语句查询mysql.user表没有任何问题,找到了我需要的记录:
select * from user.mysql where Password=PASSWORD('123456');

可是我在查询自己创建的另一个数据库xyb的数据表ttt时却发生了问题:
select * from xyb.ttt where Password=PASSWORD('123');
这个查询应该是有一条记录的,可是却显示:Empty set (0.00 sec)
我想来想去找不到是什么原因,是不是自己创建的表应该要另外设置什么才能支持根据PASSWORD()函数来验证经过PASSWORD()函数加密的数据。

请大家帮帮我好么,谢谢所有回复的朋友!!

ttec_pq 发表于 2005-4-24 23:13:47

user表中存储的是授权用户的用户名和密码,在你用MYSQLADMIN来更改密码或在数据库里用GRANT新增授权用户时都缺省使用PASSWORD()函数加密密码,所以你用SELECT是对的。
但你自己创建的表中,你INSERT内容时用PASSWORD()函数了吗?如果没用,他会
将你SELECT语句中的内容用PASSWORD()加密后再与表中原有的字符窜比对,那肯定找不到,你在SELECT中直接用密码应该就没问题
页: [1]
查看完整版本: mysql password()函数的一个问题,请大家帮帮忙