請開多個 mysql user 吧
正常我們的邏輯是 看 user 去判斷 權限 不是用密碼去判斷權限
你有聽過 用相同的 username 輸入不同密碼 登入 window 後給你不同的畫面嗎?
前面 mysql doc 寫的那個他是用 hostname 去區分連線的機器
你當然可以把三個不同的 hostname 都綁在同樣一個 localhost 但是我相信以 mysql account 的邏輯來說, 你應該不可能在相同 account 下, 設定超過一組不同的密碼
當然也或許不是做不到, 我快速能想到的寫法會是
先開一個 root mysql account
然後寫一個類似這樣的先導程式在 user login 或是哪裡
代碼:
if username == account and password == password1
SET PASSWORD FOR account@localhost = PASSWORD('password1');
GRANT ALL PRIVILEGES ON test1.* TO account@localhost IDENTIFIED BY "password1";
if username == account and password == password2
SET PASSWORD FOR account@localhost = PASSWORD('password2');
GRANT ALL PRIVILEGES ON test2.* TO account@localhost IDENTIFIED BY "password2";
if username == account and password == password3
SET PASSWORD FOR account@localhost = PASSWORD('password3');
GRANT ALL PRIVILEGES ON test3.* TO account@localhost IDENTIFIED BY "password3";
當然啦 這是一個很爛方法,
因為當有 user 去 連接 test1 DB 他就會先把密碼改成 passowrd1, user 去連接 test2 DB 他就會先把密碼改成 passowrd2...etc
但是如果很多人同時間連線
我想密碼一定是來不及改的 然後會出現錯誤訊息類似 account 沒有權限登入某某 database