mysql中賦予權限


mysql權限機制:包含兩個階段

第一階段:服務器檢查是否允許連接數據庫。

第二階段:假如可以連接,再檢查是否有足夠的權限來操作數據庫中的表。

連接mysql服務器的一個示例:ip(主機名),端口,用戶名,密碼

shell>mysql -hhost_ip_address -uusername -pyour_password -Pserver_port;

 

遇到了 SQLException: access denied for  @'localhost' (using password: no)

解決辦法:grant all privileges on *.* to joe@'localhost' identified by '1';

                  flush privileges;

拿 joe  1  登陸ee

 

賦予權限和回收權限:  (最后記得刷新權限)

mysql>  grant 權限1,權限2,…權限n on 數據庫名稱.表名稱 to 用戶名@用戶地址 identified by ‘連接口令’;

當權限1,權限2,…權限n被all privileges或者all代替,表示賦予用戶全部權限。
當數據庫名稱.表名稱被*.*代替,表示賦予用戶操作服務器上所有數據庫所有表的權限。
用戶地址可以是localhost,也可以是ip地址、機器名字、域名。也可以用’%'表示從任何地址連接。
‘連接口令’不能為空,否則創建失敗。

例如:

給來自10.163.225.87的用戶joe分配可對數據庫vtdc的employee表進行select,insert,update,delete,create,drop等操作的權限,並設定口令為123

 mysql>grant  select , insert, update, create, drop  on  vtdc.employee  to  joe@'10.163.255.87'  identified  by '123';

 mysql> flush privileges;

給來自10.163.225.87的用戶joe分配可對數據庫vtdc所有表進行所有操作的權限,並設定口令為123

mysql>grant  all  privileges  on  vtdc.*  to  joe@'10.163.255.87'  identified  by  '123';

mysql>flush privileges;

給來自10.163.225.87的用戶joe分配可對所有數據庫的所有表進行所有操作的權限,並設定口令為123。

mysql>grant  all  privileges  on   *.*   to   joe@'10.163.255.87'  identified  by  '123';

mysql>flush privileges;

 

回收權限:

mysql>revoke  select, insert, update, delete  on  db_name.*  from user_name@'10.%';

mysql>flush privileges;

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM