【轉】關於MySQL許可權

ghost丶桃子發表於2016-05-20

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`;
該賬戶只用於從本機連線。授予了RELOAD和PROCESS管理許可權。這些許可權允許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;

 

轉自:http://www.blogjava.net/Skynet/archive/2008/10/01/232017.html

轉載請註明出處:http://www.cnblogs.com/haochuang/ 8年IT工作經驗,5年測試技術與管理,2年產品與專案管理,曾參與過雲端計算雲端儲存車聯網產品研發工作; 業餘自媒體人,有技術類垂直微信公眾號;如有招聘或求職方面需求,請Mail to uetest@qq.com ;或通過 QQ:363573922 微博:@念槐聚 聯絡;


相關文章