Mysql 用戶管理和權限設置


1.查看用戶

2.創建用戶

3.授權用戶

4.刪除用戶

5.設置與更改用戶密碼

6.撤銷用戶權限

 

1.查看用戶

查看用戶並沒有直接的SQL語句,而是進入 mysql數據庫的user表(這個mysql庫和user表都是一開始就有的),直接用 select * from user;來查看有什么用戶

由於在linux下比較難看,因為格式比較亂,所以我用了 SQLyog這個軟件登陸數據庫來操作。

代碼如下:

 

[sql]  view plain  copy
 
  1. use mysql;  
  2. select * from user;  

 

效果如上圖,最后用數據庫軟件,因為在linux下界面看不清效果,太亂了。

從上圖可以看到,會列出數據庫所有的用戶及權限

 

2.創建用戶

CREATE USER  'user_name'@'host'  IDENTIFIED BY  'password';

user_name:要創建用戶的名字。

host:表示要這個新創建的用戶允許從哪台機登陸,如果只允許從本機登陸,則 填 ‘localhost’ ,如果允許從遠程登陸,則填 ‘%’

password:新創建用戶的登陸數據庫密碼,如果沒密碼可以不寫。

 

例:

CREATE USER  ‘aaa’@‘localhost’ IDENTIFED BY ‘123456’;          //表示創建的新用戶,名為aaa,這個新用戶密碼為123456,只允許本機登陸

CREATE USER  'bbb'@'%' IDENTIFED BY '123456';//表示新創建的用戶,名為bbb,這個用戶密碼為123456,可以從其他電腦遠程登陸mysql所在服務器

CREATE USER  ‘ccc’@‘%’ ;//表示新創建的用戶ccc,沒有密碼,可以從其他電腦遠程登陸mysql服務器

 

我用 CREATE USER  'aaa'@‘%’;創建新用戶,再用 select * from user;查看用戶列表:

可以看出 有 aaa用戶了。但是可以看到 aaa 的權限很多都是 N,表示沒有權限,因為還要為用戶授予權限。

 

3.授權用戶

命令:GRANT privileges ON  databasename.tablename  TO  ‘username’@‘host’

privileges:表示要授予什么權力,例如可以有 select , insert ,delete,update等,如果要授予全部權力,則填 ALL

databasename.tablename:表示用戶的權限能用在哪個庫的哪個表中,如果想要用戶的權限很作用於所有的數據庫所有的表,則填 *.*,*是一個通配符,表示全部。

’username‘@‘host’:表示授權給哪個用戶。

 

例:

GRANT  select,insert  ON  zje.zje  TO ‘aaa’@‘%’;         //表示給用戶aaa授權,讓aaa能給zje庫中的zje表 實行 insert 和 select。

GRANT  ALL  ON  *.*  TO  ‘aaa’@‘%’;//表示給用戶aaa授權,讓aaa能給所有庫所有表實行所有的權力。

 

用GRANT  ALL  ON  *.*  TO  ‘aaa’@‘%’ ;再看用戶列表,可以發現權限都變成 Y了。

注意:

用以上命令授權的用戶不能給其他用戶授權,如果想這個用戶能夠給其他用戶授權,就要在后面加上   WITH GRANT OPTION

如: GRANT  ALL  ON   *.*   TO  ’aaa‘@'%'  WITH GRANT OPTION; 

 

 

4.刪除用戶

命令:DROP  USER ‘user_name’@‘host’ 

例:

DROP USER 'aaa'@‘%’;//表示刪除用戶aaa;

 

5.設置與更改用戶密碼

SET  PASSWORD  FOR  ‘username’@‘host’ = PASSWORD(‘newpassword’); 

如果是設置當前用戶的密碼:

SET  PASSWORD = PASSWORD('newpassword');

如: SET  PASSWORD = PASSWORD(‘123456’);

 

6.撤銷用戶權限:

命令:REVOKE   privileges   ON  database.tablename  FROM  ‘username’@‘host’;

例如: REVOKE  SELECT ON  *.*  FROM  ‘zje’@‘%’;

 

但注意:

若授予權利是這樣寫: GRANT  SELECT  ON  *.*  TO ‘zje’@‘%’;

則用 REVOKE  SELECT ON   zje.aaa  TO  ‘zje’@‘%’;是不能撤銷用戶zje 對 zje.aaa 中的SELECT 權利的。

 

反過來 GRANT SELECT  ON  zje.aaa  TO  ‘zje’@‘%’;授予權力

用 REVOKE SELECT ON  *.*  FROM  ‘zje’@‘%’;也是不能用來撤銷用戶zje 對zje庫的aaa表的SELECT 權利的


免責聲明!

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



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