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