MySQL知識整理2—用戶管理和權限設置
阿新 • • 發佈:2019-03-05
用戶權限管理 reat pop brush new 權限列表 無密碼 訪問 分享圖片
用戶權限管理主要有以下作用: 1. 可以限制用戶訪問哪些庫、哪些表 2. 可以限制用戶對哪些表執行SELECT、CREATE、DELETE、DELETE、ALTER等操作 3. 可以限制用戶登錄的IP或域名 4. 可以限制用戶自己的權限是否可以授權給別的用戶
- 查看用戶
- 創建用戶
- 授權用戶
- 刪除用戶
- 設置與更改用戶密碼
- 撤銷用戶權限
use mysql; select * from user;可以導出形成CSV文件進行查看: 如上圖,列出數據庫所有的用戶及權限 用戶詳情的權限列表請參考MySQL官網說明: https://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html 2.創建用戶 CREATE USER ‘user_name‘@‘host‘ IDENTIFIED BY ‘password‘;
- user_name:要創建用戶的名字
-
host:表示要這個新創建的用戶允許從哪臺機登陸,如果只允許從本機登陸,則 填‘localhost‘,如果允許從遠程登陸,則填 ‘%‘
- password:新創建用戶的登陸數據庫密碼,如果沒密碼可以不寫。
create user ‘aaa‘ @ ‘localhost‘ identified by ‘123456‘; //表示創建的新用戶,名為aaa,這個新用戶密碼為123456,只允許本機登陸 create user ‘bbb‘ @ ‘%‘ identified by ‘123456‘; //表示新創建的用戶,名為bbb,這個用戶密碼為123456,可以從其他電腦遠程登陸mysql所在服務器 create user ‘ccc‘ @ ‘%‘; //表示新創建的用戶ccc,沒有密碼,可以從其他電腦遠程登陸
可見創建了用戶tom,通配符‘%‘表示可在遠程登陸,無密碼
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能給所有庫所有表實行所有的權力。 //再看用戶列表,可以發現權限都變成 Y了。
註意:用以上命令授權的用戶不能給其他用戶授權,如果想這個用戶能夠給其他用戶授權,就要在後面加上with grant option ;比如:
grant all on *.* to ‘aaa‘@‘%‘ with grant option;
4.刪除用戶
命令:drop user ‘user_name‘@‘host‘; 例: drop user ‘tom‘@‘%‘; //表示刪除用戶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‘@‘%‘;
7.用戶重命名
rename user ‘tom‘@‘%‘ to ‘tomao‘@‘%‘;
8.刷新權限
flush privileges;
MySQL知識整理2—用戶管理和權限設置