茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1735632 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
Dell_M4500_0114.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2013/1/27 9:47:01
如何讓某一使用者透過 phpMyAdmin 登入時只能看到要給他管理的資料表?

如果您新增一個使用者只允許他有使用某些資料庫權限時,在新增此使用者時不要給任何的權限,
改由phpMyAdmin首頁中的[權限]連結進入並選定編輯的使用者,進入後會有幾個項目,選擇[指定資料庫權限],
再做權限的編輯即可給定該使用者可使用哪些資料庫或資料庫下的資料表的權限。

也就是說,先建立一個使用者,給他帳號密碼,但是不給他任何權限!
然後透過 phpMyAdmin 首頁的『權限』功能來編輯該使用者可以「操作哪個資料庫」!
記得權限修改完後都要『FLUSH PRIVILEGES』喔!




另外一個方法:
案例: 系統管理員想讓 admin 這個帳號透過 phpmyadmin 管理 mydb 資料庫, 但又不想讓 admin 看到 mydb 裡面的某表格內容

解決辦法: 以 grant 命令逐一賦予 mydb 各資料表權限, 略過特定資料表

#清除權限設置. 如果 admin 帳號從未建立則省略此步驟
$> mysql -u root -p -A mysql
mysql> delete from tables_priv where user='admin' and db='mydb';
mysql> revoke all privileges from admin@localhost;
mysql> flush privileges;
mysql> exit

#匯出目的資料庫
$> mysqldump -u root -p mydb > mydb.sql

#取出所有表格名稱, 用來組合 grant (賦予權限) sql 命令
$> for i in $(grep 'CREATE TABLE' mydb.sql | cut -d '`' -f 2); do \
>    echo "grant select,insert,update,delete on mydb.$i to admin@localhost;" | \
>    tee -a ok.sql; \
>  done
$> echo "flush privileges;" >> ok.sql

#移除不想賦予權限的表格
$> sed -i '/secret_table/d' ok.sql

#匯入權限設置
$> mysql -u root -p < ok.sql

#如果 admin 這個帳號從未建立, 匯入 ok.sql 的同時系統將自動建立該帳號, 密碼為空白
#匯入完成後記得設定密碼:
$> mysql -u root -p -A mysql
mysql> update user set password=password('admins_password') where user='admin';
mysql> exit

#如啟用了新版 phpmyadmin 的關聯資料表附加功能 (advanced features, pmadb)
#須賦予必要權限:
$> mysql -u root -p -A mysql
mysql> grant select,insert,update,delete on phpmyadmin.* to admin@localhost;
mysql> flush privileges;
mysql> exit




冷日參考文件:
PROLinux - 技術支援討論區 - 技術支援討論區 - MySQL用戶可以存取他自己的資料庫
mysql 權限管理備忘 « Jamyy's Weblog
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|