MySQL基礎(十五):用戶權限

  • 本博客是《MySQL基礎》系列博客的第十五部分,主要介紹MySQL中的用戶權限管理
  • 本博客既爲方便自己查看複習而作,亦爲你而作,望能有所裨益
  • 學習交流請聯繫 [email protected]

基本概念


我們經常遇到用戶權限的一些問題,如“你無權創建文件”等等。類似地,在數據庫中每個用戶都有一定的權限,例如用戶A只能查看A數據庫,用戶B1只能查看B數據庫的B1表等\dots\dots


  • 在MySQL中,root賬戶爲超級管理員賬戶,負責權限管理
  • 用戶權限管理需要在mysql數據庫中進行相關操作

權限管理

用戶管理

查看用戶

show databases; -- 查看所有數據庫
use mysql; -- 使用mysql數據庫
show tables; -- 展示當前數據庫下的表

在這裏插入圖片描述

desc user; -- 描述user表結構

在這裏插入圖片描述

select * from user \G; -- 查看user表的詳細信息,並以列的形式展示

在這裏插入圖片描述
在這裏插入圖片描述

select user,host,authentication_string from user;
查看用戶名、端口號和密碼

在這裏插入圖片描述

select user(); -- 查看當前用戶

在這裏插入圖片描述

創建用戶

create user <用戶名>@ip地址 identified by '<密碼>'; -- 創建用戶,%表示所有端口 

修改密碼

  • 8.0之前版本
update user set authentication_string = password('<密碼>') 
where user = '<用戶名>';
flush privileges; 
-- 權限刷新,密碼修改後沒有馬上執行就刷新下 
  • 8.0版本及之後
update user set authentication_string='' where user='<用戶名>'; -- 清空已有密碼
ALTER USER <用戶名>@<主機地址> IDENTIFIED BY '<密碼>'; -- 創建新的密碼,推薦 
set password for <用戶名>@<主機地址> = '<密碼>' -- 另一種創建密碼的方式  

注(參考資源):
MySQL8.0後請使用alter修改用戶密碼,
因爲在MySQL8.0以後的加密方式爲caching_sha2_password,
如果使用update修改密碼會給user表中root用戶的authentication_string字段下設置newpassowrd值,
當再使用alter user ‘root’@‘localhost’ identified by 'newpassword’修改密碼時會一直報錯,必須清空後再修改,
因爲authentication_string字段下只能是MySQL加密後的43位字符串密碼,
其他的會報格式錯誤,
所以在MySQL8.0以後能修改密碼的方法只能是:ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的密碼’;


刪除用戶

drop user <用戶名>@<主機地址>; -- 刪除用戶

權限管理

查看權限

use mysql; -- 使用mysql數據庫
desc user; -- 查看數據庫的所有權限

在這裏插入圖片描述

desc tables_priv; -- 查看當前用戶的表權限

在這裏插入圖片描述

show grants; -- 查看當前賬戶的權限

在這裏插入圖片描述

show grants for <用戶名>@<主機地址>; 
-- 查看指定賬戶的權限,USAGE標識無權限,本地地址無需添加@字段

在這裏插入圖片描述

創建權限

grant <權限> on <數據庫>.<數據表> to <用戶名>@<主機地址>; 
grant all on *.* to <用戶名>@<主機地址>; -- 授予用戶所有數據庫的所有權限 
grant select(last_name) on sakila.actor to <test>@192.168.0.1;
-- 只能查看sakila數據庫中actor表的last_name字段

修改權限

修改用戶的相關權限一般都是全部刪除之後再重新授予

刪除權限

revoke all on *.* from <用戶名>@<主機地址>; 
-- 收回用戶所有權限(權限修改後會疊加,因此賦予新權限時最好清空原有權限後再賦予)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章