【求助】請教一個 mysql 的 user 權限問題

顯示結果從第 1 筆 到 10 筆,共計 10 筆
  1. #1
    會員 b90220208 的大頭照
    註冊日期
    2003-06-25
    討論區文章
    577

    【求助】請教一個 mysql 的 user 權限問題

    我的 server 環境是:
    xp pro + appserv v2.5.1(mysql4,php5..)

    由於剛安裝完 appserv ,所以想改變 root 的密碼.
    但在 xp 的文字命令模式下執行:
    mysql -u user1 -p
    後卻發現以 user1(非 root 帳戶)登入資料庫後,我竟然可"查詢"與"修改" database: mysql 的資料表,例如:
    use mysql;
    update user set password=password('12345') where user='root';

    ps. user1 只是一般帳戶

    ----------------------------------------------------------------------------------------------
    Q1:
    請問這正常嗎...如此豈不很危險!?

    Q2:
    另外想請教 server side 的 *.php 在什麼情況下會被盜取?
    是否完全無法被 client 端的訪客盜取呢?



  2. #2
    校長兼撞鐘 阿 土 的大頭照
    註冊日期
    2000-10-09
    所在地區
    SEEDNET 8M
    討論區文章
    11,817
    Appserv 預設權限本就是如此
    你可進入 phpMyAdmin 點選 "權限" 去修改

    或參考這篇文章去修改:
    http://sfs.tceb.edu.tw/file/AppServ.htm

    ps:這篇文張貼到防毒/防駭版有點不適當 , 應該扯不上關係吧

  3. #3
    會員 b90220208 的大頭照
    註冊日期
    2003-06-25
    討論區文章
    577
    哪尼!
    您是說 APPSERV 預設可讓其他帳戶去查詢與更改 ROOT 的密碼...這是真的嗎??


    我利用 PHPMYADMIN 介面的權限去看 USER1 發現其除了一些基本的權限如 SELECT , UPDATE , INSERT...等並無系統管理的權限啊...Why???

    我上文舉的 USER1 帳戶是我自己後來新增的,主要用來做為BLOG登入與連線資料庫專用,當初設定如下:
    grant all on myblog.* to user1@localhost identified by '12345';
    實在搞不懂為何其有那麼大的權限...還是我指令下的不周全呢?

    ===========================================
    我剛剛試了一下發現即便下了以下權限指令:
    grant select on myblog.* to user1@localhost identified by '12345';

    user1 仍然可以更改 root 的密碼!.....Why???
    我不是已經限定 user1 的權限只有在 myblog.* 了嗎...為何其可去動到位於mysql 資料庫中的 user 資料表裡的 root 的資料呢???

  4. #4
    會員 b90220208 的大頭照
    註冊日期
    2003-06-25
    討論區文章
    577
    我已將 User , Password 值為空字串的都刪除了!
    以我的 user 表來看,僅剩下兩筆資料亦即: root 與 user1

    =========================================
    我剛剛試了一下發現即便下了以下權限指令:
    grant select on myblog.* to user1@localhost identified by '12345';

    且資料庫有重新啟動,只是
    user1 仍然可以更改 root 的密碼!
    我明明已經限定 user1 的權限只有在 myblog.* ,為何其仍可去動到位於mysql 資料庫中的 user 資料表裡的 root 的密碼呢 ???

    照理說, user1 應該連:
    use mysql;
    select * from user;
    都作不了的...,不是嗎?


    以下列出最終 user 表的查詢結果:
    file

    首先,我上文的權限設定指令只給了user1 "select" 的權限,但此查詢結果的 user1 根本就天差地遠地多了許多權限.

    其次是 user1 根本就無"系統管理"的相關權限,而我上文也說過其權限僅限制在 mtblog.* 的所有資料表...真不知為何以 user1 登入 MySQL 後竟還可以改掉 root 的密碼???

  5. #5
    會員 b90220208 的大頭照
    註冊日期
    2003-06-25
    討論區文章
    577
    以下是我找到的答案,順便post上來給有同樣問題的人參考.
    ===================================
    mysql.user table 裡的 priv 屬於 global level 權限,意謂可以針
    對server上的任何一個資料庫!!!

    可以用
    REVOKE ALL PRIVILEGES ON *.* FROM user
    來移除所有 global level 權限

    grant select on myblog.* to user1@localhost identified by '12345';
    只會變更 db level 權限, 並記錄在mysql.db! 另外,如原本即無此使用者
    user table 會預設 priv 欄位值皆為'N'喔!
    --
    權限的 level 總共有:
    global, db, table, column, Routine level



  6. #6
    會員 b90220208 的大頭照
    註冊日期
    2003-06-25
    討論區文章
    577
    大致上有較了解了,再請教一些事以確定我的觀念正確與否.....感激不盡!


    Q1:
    在 user 表中的欄位 *_priv (如 Select_priv) 是否都算是 global level 權限?


    Q2:
    若是,
    則執行 grant all on 論壇.* to 帳戶@localhost identified by '密碼';
    是否只會變更db level 權限, 並記錄在 mysql.db,亦即如此做並不會有 global level 權限的安全性問題?

    也就是執行 grant all on 論壇.* to 帳戶@localhost identified by '密碼';
    與 user 表中的欄位 *_priv 之值無關?


    Q3:
    若是,
    請問執行 grant all on 論壇.* to 帳戶@localhost identified by '密碼';
    後,在 user 表中的所有 *_priv 欄位的值是 "Y" 或 "N" 呢?


    Q4:
    請教如設定與更改某帳戶的 global level 權限 ?


    Q5:
    該如何完整刪除某個已存在帳戶呢?

  7. #7
    會員 b90220208 的大頭照
    註冊日期
    2003-06-25
    討論區文章
    577
    A1:yes
    A2:yes,yes
    A3:user中的*_priv預設都會為N
    A4:以root權限進入作設定,如:grant select on *.* to 帳號@localhost;
    A5:
    以root權限進入:
    DROP USER user;
    或者
    delete from user where user.user='帳號';
    delete from db where db.user='帳號';

  8. #8
    會員 b90220208 的大頭照
    註冊日期
    2003-06-25
    討論區文章
    577
    嗯,再請教:

    Q1:
    如果把MYSQL資料庫中的資料表:user,db,user_info,tables_priv,procs_priv,columns_priv中的User欄位有欲刪除帳號的資料逐一刪除如下:
    delete from user where user='帳號';
    ...
    ...
    delete from columns_priv where user='帳號';

    如此與DROP USER '帳號';的效果有何差別?


    Q2:
    官網有提到:自MySQL 4.1.2後可以如下指令完整刪除包含---
    all global, database-, table-, and column-level privileges 的帳戶:

    REVOKE ALL PRIVILEGES, GRANT OPTION FROM usera;

    ....為怕我會錯意,想先確定再來執行,謝謝!

  9. #9
    會員 b90220208 的大頭照
    註冊日期
    2003-06-25
    討論區文章
    577
    自問自答:

    a1:
    一樣,後者比較方便!

    至於 DROP USER 有幾點要注意:
    "5.0.1版本以前"只能 drop 沒有任何權限的 user ,所以要先用以下指令移除權限:
    REVOKE ALL PRIVILEGES, GRANT OPTION FROM usera@localhost;
    再執行:
    DROP USER usera@localhost;


    a2:
    REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1@localhost;
    以上的指令做完後,只需再做完如下指令就完成刪除user1的所有工作!
    DELETE FROM USER WHERE USER='user1';

  10. #10
    會員 b90220208 的大頭照
    註冊日期
    2003-06-25
    討論區文章
    577
    關於單引號的使用時機(以下是我在網上查到的資訊,但無法百分百確定):

    ->單引號問題只有在例如:'USER-1'@'%'才需強制加上.
    帳戶若無"-",主機若無"-"或"%"則可加可不加.




    關於刪除帳戶 usera 我做了以下整理:

    ------------------------------------------------------------------
    首先釐清:
    下行指令只會移除 usera 的所有 global權限
    (亦即位於 mysql.user 表中的所有權限欄位設定)
    REVOKE ALL PRIVILEGES ON *.* FROM 'usera'@'localhost'

    ------------------------------------------------------------------
    若要完整刪除帳戶 usera (亦即包含'該帳戶資料'及'所有表相關的權限設定'),自從
    MySQL v4.1.2 後,有以下 3 個方法可用:


    1.先移除權限再刪除

    A.移除權限(all global, database-, table-, and column-level privileges)
    .如果user資料表的Host為%
    REVOKE ALL PRIVILEGES, GRANT OPTION FROM usera;

    .否則(方法)
    revoke all privileges ,grant option from usera@localhost(或其他明確主機名);

    B.刪除(方法)

    b1. DELETE FROM USER WHERE USER='usera';

    b2. drop user usera@localhost;
    (5.0.1版本以前只能 drop 沒有任何權限的 user ,所以須先執行上述 [A.移除權限] 之步驟)
    (若版本 >= 5.0.1 ,則建議採用下述的方法3較快)



    2.直接刪除 (較麻煩,需逐一刪除 user,db,user_info,tables_priv,procs_priv,columns_priv
    表中的資料與權限設定)

    delete from user where user='usera';
    ...
    ...
    delete from columns_priv where user='usera';



    3."一步"即搞定刪除一個帳戶之所有工作(需要在5.0.1及以上版本)
    drop user usera@localhost;



類似的主題

  1. 【問題】domain user權限問題
    作者:aristo1213 所在討論版:-- Windows 討 論 版
    回覆: 1
    最後發表: 2006-08-29, 12:03 PM
  2. 【問題】關於Admin & User 的權限問題?
    作者:ck2075 所在討論版:-- Windows 討 論 版
    回覆: 5
    最後發表: 2006-05-19, 07:24 AM
  3. 【求助】問一個FTP的權限問題
    作者:woodrew 所在討論版:-- FreeBSD & Linux 討 論 版
    回覆: 1
    最後發表: 2005-03-18, 12:40 PM
  4. 請教win2000高手 guest權限問題
    作者:simonpanda 所在討論版:-- Windows 討 論 版
    回覆: 13
    最後發表: 2002-10-23, 10:24 PM

 

此網頁沒有從搜尋引擎而來的訪客

發表文章規則

  • 不可以發表新主題
  • 不可以回覆文章
  • 不可以上傳附加檔案
  • 不可以編輯自己的文章
  •