我想从mysql数据库创建一个简单的(非安全的)登录检查,其中我有一个具有Login_name和Password字段的表。但是,无论用户插入什么密码,我的系统都会登录,如果Login_name是正确的。如何修复系统以检查两者是否与用户匹配?我的SQL程序:
CREATE PROCEDURE `usp_getUserAccount`(IN username VARCHAR(255), IN password VARCHAR(255))
BEGIN
select Name, Access_level_group, ID
from User_accounts
where Password = password
AND Login_name = username;
END
$$
答案 0 :(得分:0)
我相信MySQL不区分大小写,因此Password = password始终为true。您需要澄清您要检查User_accounts.Password,而不仅仅是密码参数。因此,要么更改IN参数的名称,要么使用User_accounts.Password替换密码。