1. 程式人生 > >MySQL知識整理2—用戶管理和權限設置

MySQL知識整理2—用戶管理和權限設置

用戶權限管理 reat pop brush new 權限列表 無密碼 訪問 分享圖片

用戶權限管理主要有以下作用: 1. 可以限制用戶訪問哪些庫、哪些表 2. 可以限制用戶對哪些表執行SELECT、CREATE、DELETE、DELETE、ALTER等操作 3. 可以限制用戶登錄的IP或域名 4. 可以限制用戶自己的權限是否可以授權給別的用戶
  • 查看用戶
  • 創建用戶
  • 授權用戶
  • 刪除用戶
  • 設置與更改用戶密碼
  • 撤銷用戶權限
1.查看用戶 查看用戶並沒有直接的SQL語句,而是進入 mysql數據庫的user表(這個mysql庫和user表都是一開始就有的),直接用 select * from user,來查看有什麽用戶
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—用戶管理和權限設置