posts - 165, comments - 198, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          mysql 權限控制筆記

          Posted on 2008-04-29 13:52 G_G 閱讀(11687) 評論(3)  編輯  收藏 所屬分類: Database

          MySQL 存取控制包含2個階段:

          • 階段1:服務器檢查是否允許你連接。
          • 階段2:假定你能連接,服務器檢查你發出的每個請求。看你是否有足夠的權限實施它。例如,如果你從數據庫表中選擇(select)行或從數據庫刪除表,服務器確定你對表有SELECT權限或對數據庫有DROP權限。
          參考 : 5.8. MySQL用戶賬戶管理

          1.權限查看
          mysql>?show?grants?for?'root'@'localhost'?;
          +---------------------------------------------------------------------+
          |?Grants?for?root@localhost???????????????????????????????????????????|
          +---------------------------------------------------------------------+
          |?GRANT?ALL?PRIVILEGES?ON?*.*?TO?'root'@'localhost'?WITH?GRANT?OPTION?|
          +---------------------------------------------------------------------+
          1?row?in?set?(0.06?sec)

          2.權限設置
          5.8.2. 向MySQL增加新用戶賬戶
          mysql>?GRANT?ALL?PRIVILEGES?ON?*.*?TO?'monty'@'localhost'
          ????
          ->?????IDENTIFIED?BY?'some_pass';

          mysql
          >?GRANT?ALL?PRIVILEGES?ON?*.*?TO?'monty'@'%'
          ????
          ->?????IDENTIFIED?BY?'some_pass'?WITH?GRANT?OPTION;
          ?? 其中兩個賬戶有相同的用戶名monty和密碼some_pass。兩個賬戶均為超級用戶賬戶,具有完全的權限可以做任何事情。一個賬戶 ('monty'@'localhost')只用于從本機連接時。另一個賬戶('monty'@'%')可用于從其它主機連接。


          mysql>?GRANT?RELOAD,PROCESS?ON?*.*?TO?'admin'@'localhost';
          該賬戶只用于從本機連接。授予了RELOADPROCESS管理權限。這些權限允許admin用戶執行mysqladmin reloadmysqladmin refreshmysqladmin flush-xxx命令,以及mysqladmin processlist。未授予訪問數據庫的權限。你可以通過GRANT語句添加此類權限。

          mysql
          >?GRANT?USAGE?ON?*.*?TO?'dummy'@'localhost';
          ??? 一個賬戶有用戶名dummy,沒有密碼。該賬戶只用于從本機連接。未授予權限。通過GRANT語句中的USAGE權限,你可以創建賬戶而不授予任何權限。它可以將所有全局權限設為'N'。假定你將在以后將具體權限授予該賬戶。

          下面的例子創建3個賬戶,允許它們訪問專用數據庫。每個賬戶的用戶名為custom,密碼為obscure

          mysql
          >?GRANT?SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
          ????
          ->?????ON?bankaccount.*
          ????
          ->?????TO?'custom'@'localhost'
          ????
          ->?????IDENTIFIED?BY?'obscure';

          mysql
          >?GRANT?SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
          ????
          ->?????ON?expenses.*
          ????
          ->?????TO?'custom'@'whitehouse.gov'
          ????
          ->?????IDENTIFIED?BY?'obscure';

          mysql
          >?GRANT?SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
          ????
          ->?????ON?customer.*
          ????
          ->?????TO?'custom'@'server.domain'
          ????
          ->?????IDENTIFIED?BY?'obscure';

          這3個賬戶可以用于:

          ·?????????第1個賬戶可以訪問bankaccount數據庫,但只能從本機訪問。

          ·?????????第2個賬戶可以訪問expenses數據庫,但只能從主機whitehouse.gov訪問。

          ·?????????第3個賬戶可以訪問customer數據庫,但只能從主機server.domain訪問。

          要想不用GRANT設置custom賬戶,使用INSERT語句直接修改?授權表:

          5.8.3.?從MySQL刪除用戶賬戶

          DROP USER user;





          評論

          # re: mysql 權限控制筆記  回復  更多評論   

          2008-06-11 09:29 by ocean
          您的blog寫的很負責:)

          希望能和你多多交流,我的msn:ie_eu@hotmail.com

          # re: mysql 權限控制筆記  回復  更多評論   

          2008-06-17 12:24 by 初學者
          講的很明白,謝謝!

          # re: mysql 權限控制筆記[未登錄]  回復  更多評論   

          2008-11-06 14:52 by 毛毛
          我愛你,謝謝
          主站蜘蛛池模板: 静安区| 和平区| 兰坪| 岗巴县| 南汇区| 鄂尔多斯市| 东乡族自治县| 赣州市| 梁山县| 江山市| 南漳县| 镇巴县| 孟村| 邓州市| 嘉善县| 大竹县| 饶阳县| 象州县| 大理市| 天津市| 大港区| 囊谦县| 沙湾县| 宝坻区| 巨鹿县| 阿拉尔市| 杭锦旗| 宕昌县| 柘城县| 建平县| 泗洪县| 峡江县| 顺平县| 双峰县| 长垣县| 镇巴县| 萝北县| 鄯善县| 林周县| 安国市| 南召县|