瀏覽單個文章
PAN_PAN
Junior Member
 
PAN_PAN的大頭照
 

加入日期: Jan 2003
您的住址: Shattrath City
文章: 948
請開多個 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
舊 2015-07-20, 12:09 AM #10
回應時引用此文章
PAN_PAN離線中