【轉】關於MySQL許可權
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)
+———————————————————————-+
| 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 reload、mysqladmin refresh和mysqladmin flush-xxx命令,以及mysqladmin processlist。未授予訪問資料庫的許可權。你可以通過GRANT語句新增此類許可權。
mysql> GRANT USAGE ON *.* TO `dummy`@`localhost`;
一個賬戶有使用者名稱dummy,沒有密碼。該賬戶只用於從本機連線。未授予許可權。通過GRANT語句中的USAGE許可權,你可以建立賬戶而不授予任何許可權。它可以將所有全域性許可權設為`N`。假定你將在以後將具體許可權授予該賬戶。
-> 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 reload、mysqladmin refresh和mysqladmin 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 微博:@念槐聚 聯絡;
相關文章
- 關於mysql許可權管理MySql
- 關於動態許可權
- mysql 管理:mysql 執行許可權(轉)MySql
- mysql許可權MySql
- MySQL 許可權MySql
- Mysql存取許可權系統(轉)MySql
- 關於 Laravel 日誌許可權Laravel
- postgresql關於許可權的總結SQL
- Mysql——許可權管理MySql
- Mysql 許可權管理MySql
- MySQL許可權管理MySql
- AIX 的許可許可權(轉)AI
- 【轉載】關於後臺許可權,我的幾點思考
- java反射——關於許可權和異常Java反射
- 關於許可權系統的設計
- mysql許可權參考MySql
- MySQL許可權問題MySql
- MySQL reload許可權MySql
- MySQL許可權系統MySql
- [玄月]MySQL許可權MySql
- MySQL 許可權詳解MySql
- Guest許可權突破——許可權提升方法總結(轉)
- pg許可權相關
- 關於公司程式碼許可權的問題
- 關於oracle檔案許可權的問題Oracle
- 關於許可權管理的實用指令碼指令碼
- 續:關於許可權系統的設計
- MySQL許可權管理實戰MySql
- mysql連線無許可權MySql
- MySQL許可權表介紹MySql
- mysql 許可權控制筆記MySql筆記
- mysql之許可權驗證MySql
- mysql使用者許可權MySql
- oralce關於使用者和許可權的一些命令(轉)
- MySQL資料庫許可權體系入門(6)---管理表、列及程式相關許可權MySql資料庫
- MySQL許可權提升及安全限制繞過漏洞(轉)MySql
- Oracle的物件許可權、角色許可權、系統許可權Oracle物件
- postgresql關於訪問檢視需要的許可權SQL