1. 程式人生 > >MYSQL的建立使用者,授權使用者,刪除使用者,檢視使用者

MYSQL的建立使用者,授權使用者,刪除使用者,檢視使用者

1.檢視使用者

2.建立使用者

3.授權使用者

4.刪除使用者

5.設定與更改使用者密碼

6.撤銷使用者許可權

1.檢視使用者

檢視使用者並沒有直接的SQL語句,而是進入 mysql資料庫的user表(這個mysql庫和user表都是一開始就有的),直接用 select * from user;來檢視有什麼使用者

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

程式碼如下:

use mysql;
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 權利的