Mysql

將登錄資訊(使用者名、密碼)隔離在單獨的表中是一種好習慣嗎?

  • September 7, 2016

我有一個名為“患者”的數據庫表,用於儲存患者資訊。結構(列列表)如下。

病人桌

idPatient (int)
user_name (varchar)
password (varchar)
first_name (varchar)
last_name (varchar)
height (double)
weight (double)

該數據庫遠端連接到一個 android 應用程序。有一個登錄過程,這就是為什麼您可以看到user_namepassword欄位。

但是我對下面的表結構有一個想法,而不是上面。

使用者表

idUser (int)
user_name (varchar)
password (varchar)

病人桌

idPatient (int)
user_iduser (int) /*The foriegn key of `user` table*/ 
first_name (varchar)
last_name (varchar)
height (double)
weight (double)

那麼哪種結構最好呢?我提出第二個結構的唯一原因是為了進一步保護使用者資訊,不要將它們放在用於登錄檢查的相同位置。

請指教。

我建議您通過加密要保持安全的數據來實現安全性。將使用者名和密碼分開到不同的表不會顯著改善它們的保護。

從安全數據中拆分註冊數據是一種很好的方法。它允許您降低將數據傳輸到客戶端應用程序和業務邏輯意外數據損壞的風險。但是您還需要通過 sha256 對密碼進行雜湊處理,並比較密碼雜湊,而不是密碼。

引用自:https://dba.stackexchange.com/questions/148909