2012年4月12日 星期四

MySQL 權限管理小技巧

由於過去的 MySQL 使用並沒太多的帳號規劃,只有個簡單的 user account,例如:myuser,配上 % any host 的認證組合。這個組合開的是最大的權限,雖然有在 iptables 下設定允許存取的 ip,但仍想針對特定的 ip 進行權限管理。在密碼是多數的人馬都知道的情況下,找到一個算是可用的方法。

因為 mysql 對於連線進來的 user account 會先替無萬用字元的組合配對(萬用字元的組合數較少者優先配對),我們可以針對某一個 ip 設同一個 user account 同一組密碼。並 grant 那一組特定的 ip 使用 USAGE 權限。如同手冊說的 USAGE 就是沒有權限。這樣即使拿到 user account 也無法做什麼,我們就可以強迫由特定 ip 上來的人用我們指定的 user account。而不是只能口頭相約,希望他使用我們替他額外準備好的帳號。