解決MySQL資料庫不區分大小寫的問題

2021-08-11 14:39:59 字數 515 閱讀 4033

問題背景:在做**開發時,若使用者使用"aaaa"註冊使用者名稱,存入資料庫後,當使用者登入時,輸入「aaaa」或"aaaa"等使用者名稱,密碼匹配情況下,都能正確登入成功,這無疑是乙個很大的漏洞,解決問題的方法就是資料庫要區分大小寫。網上有多種方法,下面給的兩種方法親測有效。

方法一:

在資料庫使用者表使用者名稱這一字段若是string型別(一般也不會是其他型別),則修改字段屬性,讓其預設區分大小寫,例如:

alter table 表名 modify column 欄位名  varchar(100) binary character set utf-8

如果使用hibernate作為實體類連線資料庫,則hql語言不需要修改。

方法二:

如果不想修改資料庫操作,可以在使用者登入時採用使用者名稱和密碼從資料庫查詢出來這個使用者實體類,然後將使用者輸入的使用者名稱和使用者實體類中的使用者名稱equals對比,如果為true,則使用者名稱輸入正確。

因為與資料庫資訊匹配的過程不區分大小寫,加上一步equals方法再次在區分大小寫情況下進行匹配。

設定mysql資料庫表名不區分大小寫

最近因為乙個新的業務模組,因此使用到到msyql資料庫。我對接的技術開發中心的同事因為對錶名 欄位名大小寫使用特別不規範,查詢的時候 乙個表名很經常大寫 小寫 大寫,因此讓我將資料庫設定為對錶名不區分大小寫。mysql資料庫的表的欄位名是不區分大小寫的,設定表名不區分,可以在 資料庫的配置檔案中新增...

更改MYSQL資料庫不區分大小寫表名

url 原來是linux下的mysql預設是要區分表名大小寫的,哎,弄了那麼舊,害死我了。讓mysql不區分表名大小寫的方法其實很簡單 color darkblue 1.用root登入,修改 etc my.cnf,b linux下面的xampp的my.cnf位置是 opt lampp etc my....

Mysql查詢資料庫不區分大小寫的問題

mysql資料庫查詢,在預設windows系統下,是不區分大小寫的 mysql查詢預設是不區分大小寫的 如 select from user where str abc select from user table where str abc 得到的結果是一樣的,如果我們需要進行區分的話可以按照如下...