在RDBMS中构造密码存储表的最佳方法是什么?

时间:2015-04-23 14:28:01

标签: rdbms password-protection

帐户名称及其密码存储在不同的表中,以提高安全性。哪个表应包含另一个外键?

我可以存储这样的密码:

CREATE TABLE account
(
      id   INT
    , name TEXT
)
;

CREATE TABLE password
(
      account_id    INT
    , password_hash TEXT
    , CONSTRAINT fk_password_account_id
        FOREING KEY (account_id) REFERENCES account (id)
)
;

通过这种方式,即使用户知道帐户的名称,黑客也不会知道用户的密码。

另一种方法是:

CREATE TABLE account
(
      id          INT
    , name        TEXT
    , password_id INT
    , CONSTRAINT fk_account_password_id
        FOREIGN KEY (password_id) REFERENCES password (id)
)
;

CREATE TABLE password
(
      id            INT
    , password_hash TEXT
)
;

这样即使黑客知道密码,她/他也不知道谁是所有者。

那么,假设密码存储在不同的数据库中,或者至少存储在不同的模式中,哪种方法更好?如果密码和帐户存储在同一个数据库中?

0 个答案:

没有答案