在mysql中用戶權限是一個很重要的參數,因爲臺mysql服務器中會有大量的用戶,每個用戶的權限需要不一樣的,下面我來介紹如何給mysql用戶分配權限吧,有需要了解的朋友可參考。
1、Mysql下創建新的用戶並分配權限
語法:mysql> create user 用戶名 identified by '密碼';
給用戶分配權限
語法:mysql> grant 權限 on 數據庫.數據表 to '用戶' @ '主機名';
例:
mysql> create user ywliyq identified by '123456';
新創建的用戶,默認情況下是沒有任何權限的。
給ywliyq分配所有的權限
mysql> grant all on *.* to 'ywliyq'@'%';
增加新用戶
格式:grant 權限 on 數據庫.* to 用戶名@登錄主機 identified by "密碼"
如,增加一個用戶ywliyq密碼爲123456,讓其可以在本機上登錄, 並對所有數據庫有查詢、插入、修改、刪除的權限
mysql> grant select,insert,update,delete on *.* to ywliyq@localhost Identified by "123456";
如果希望該用戶能夠在任何機器上登陸mysql,則將localhost改爲"%"。
mysql> grant select,insert,update,delete on *.* to ywliyq@'%' Identified by "123456";
2、如何更精準的控制用戶的權限呢?
1.grant 權限 on 數據庫.數據表 to '用戶' @ '主機名';
例:讓ywliyq有查詢 tmp 數據庫 tmp1 表的權限;
grant select on temp.temp1 to 'ywliyq'@'%'; //這個時候ywliyq就具有查詢temp下的temp1的權限了。
例如:
1)給來自10.163.225.87的用戶joe分配可對數據庫vtdc的employee表進行select,insert,update,delete,create,drop等操作的權限,並設定口令爲123。
mysql>grant select,insert,update,delete,create,drop on vtdc.employee to [email protected] identified by ‘123′;
2)給來自10.163.225.87的用戶joe分配可對數據庫vtdc所有表進行所有操作的權限,並設定口令爲123。
mysql>grant all privileges on vtdc.* to [email protected] identified by ‘123′;
3)給來自10.163.225.87的用戶joe分配可對所有數據庫的所有表進行所有操作的權限,並設定口令爲123。
mysql>grant all privileges on *.* to [email protected] identified by ‘123′;
4)給本機用戶joe分配可對所有數據庫的所有表進行所有操作的權限,並設定口令爲123。
mysql>grant all privileges on *.* to joe@localhost identified by ‘123′;
3、如何收回權限,一般指有root用戶才具有該權限
語法:
1.revoke 權限 on 數據庫.數據表 from '用戶'@'主機名';
例:收回 ywliyq的所有權限
revoke all on *.* from 'ywliyq'@'%';