今天剛好有遇到一個需求,需限制一個登入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去做處理)
沒有留言:
張貼留言