2014年11月23日 星期日

MySQL 限定帳號能夠處理的資料庫

今天剛好有遇到一個需求,需限制一個登入MySQL的帳號只允許他針對某個資料庫去異動,

首先必須先在 資料庫: mysql 中的 資料表: user,新增此使用者的登入帳號與密碼。





然後將該USER帳號的所有權限設定為N
























接著在 資料庫: mysql 中的資料表: db ,設定該帳號的資料







如此一來該帳號就只能依據db給的權限限定可以處理的資料庫。

今天這樣實驗後,我歸納MySQL的權限設定,user-->db-->tables_priv 一層一層賦予權限
1.
首先會由user表去調出帳號密碼,如果符合再去調是否有足夠的權限(這邊的權限是全域的,假設說設定允許SELECT,即便你在mysql 中的資料表: db,設定只允許處理某個資料庫,該帳號還是可以看到其他的資料庫內容)
2.
如果user表內無其他權限,再到db去調相關資料(如上面的例子)

3.如果db內無相關權限,再到 mysql 中的 資料表: tables_priv去調權限(限定該帳號只能針對那些TABLE去做處理)

沒有留言:

張貼留言