mysql 查看个人版,MySQL系列-权限管理
MySQL系列-權(quán)限管理
運(yùn)維少年 運(yùn)維少年
系列文章說明
MySQL系列文章包含了軟件安裝、具體使用、備份恢復(fù)等內(nèi)容,主要用于記錄個(gè)人的學(xué)習(xí)筆記,主要使用的MySQL版本為5.7.28,服務(wù)器系統(tǒng)版本為CentOS 7.5。本章節(jié)為數(shù)據(jù)庫權(quán)限管理。
權(quán)限
什么是權(quán)限?
① MySQL的權(quán)限是針對(duì)用戶設(shè)計(jì),管理員可以根據(jù)不同的用戶賦予不同的權(quán)限,權(quán)限的作用對(duì)象為數(shù)據(jù)庫和表。即對(duì)用戶操作對(duì)象的行為進(jìn)行限制。
② Linux則跟MySQL不同,Linux的權(quán)限更多的是文件屬性,如我們可以通過chmod或者chown等命令對(duì)文件權(quán)限的屬性進(jìn)行修改。
權(quán)限的表現(xiàn)形式是什么?
① MySQL的權(quán)限表示形式為:用戶的增刪改查權(quán)限
② Linux的權(quán)限通常表示為:文件的rwx屬性
如何查看權(quán)限?
MySQL數(shù)據(jù)庫可以使用show命令查看用戶的權(quán)限信息。
查看用戶授權(quán)常用格式
show grants for 用戶;
查看yunwei用戶的權(quán)限信息
show grants for yunwei@'%';
如何添加權(quán)限
MySQL數(shù)據(jù)庫添加權(quán)限使用的命令為grant,添加授權(quán)在用戶重新連接后才生效。
版本說明
① 8.0版本之前,grant命令可以用于創(chuàng)建用戶和權(quán)限賦值
② 8.0(含)版本之后,grant命令只能用于權(quán)限賦值
③ 為了命令能夠通用,本文使用通用的方式進(jìn)行配置
添加授權(quán)常用格式:
grant 權(quán)限1,權(quán)限2,權(quán)限... on 對(duì)象(數(shù)據(jù)庫/表) to 用戶;
添加權(quán)限 管理員權(quán)限
一般來說,管理員擁有所有權(quán)限,在添加管理員用戶時(shí),權(quán)限字段可以通過ALL參數(shù)設(shè)置,將所有操作對(duì)象權(quán)限賦予管理員用戶。
創(chuàng)建一個(gè)管理員user1,并賦予管理員權(quán)限。
create user user01@'%' identified by '123'; # 創(chuàng)建用戶
grant all on *.* to user01@'%'; # all為所有權(quán)限 *.* 表示所有的數(shù)據(jù)庫和表
如果該管理員需要擁有對(duì)其他用戶管理權(quán)限時(shí),應(yīng)在賦值后面添加with grant option字段
grant all on *.* to user01@'%' with grant option;
測(cè)試無管理用戶權(quán)限時(shí),對(duì)用戶權(quán)限管理情況。
select user,host from mysql.user; # 查看用戶
grant select on mysql.* to yunwei@'%'; # 賦予mysql數(shù)據(jù)庫所有表的select權(quán)限給yunwei
測(cè)試有管理用戶權(quán)限時(shí),對(duì)用戶權(quán)限管理情況
如果用戶權(quán)限沒有變化,請(qǐng)使用以下命令刷新權(quán)限信息
flush privileges;
添加權(quán)限 普通用戶權(quán)限
一般來說,對(duì)普通用戶的權(quán)限管理會(huì)精細(xì)到某個(gè)數(shù)據(jù)庫或者表。例如app用戶只能管理app數(shù)據(jù)庫,yunwei用戶只能管理app數(shù)據(jù)庫的user表等。
對(duì)user02用戶賦予app數(shù)據(jù)庫的查詢和創(chuàng)建表權(quán)限
grant create,select on app.* to 'user02'@'%'; # 賦予權(quán)限
flush privileges; # 刷新權(quán)限信息
show grants for 'user02'@'%'; # 查看用戶權(quán)限
測(cè)試user02在app數(shù)據(jù)中創(chuàng)建表user和查看表
select user(); #查看當(dāng)前用戶
create table app.user(id int,name varchar(20));
測(cè)試user02對(duì)app數(shù)據(jù)庫中的其他操作和對(duì)其他數(shù)據(jù)庫的操作
? 注意
MySQL數(shù)據(jù)庫多次授權(quán)時(shí)不會(huì)覆蓋原來的權(quán)限!例如user01有select權(quán)限,下次授權(quán)create權(quán)限給user01,這時(shí)user01會(huì)擁有select和create兩種權(quán)限。
如何刪除授權(quán)
MySQL數(shù)據(jù)庫一般使用revoke命令對(duì)用戶的權(quán)限進(jìn)行移除,移除授權(quán)在用戶重新連接后才生效。
刪除授權(quán)的一般格式:
revoke 權(quán)限 on 對(duì)象 from 用戶;
刪除user02用戶對(duì)app數(shù)據(jù)庫的select權(quán)限
show grants for 'user02'@'%'; # 查看用戶權(quán)限
revoke select on app.* from 'user02'@'%'; # 刪除授權(quán)
show grants for 'user02'@'%'; # 查看用戶權(quán)限
刪除user02用戶對(duì)app庫的所有權(quán)限
show grants for 'user02'@'%'; # 查看用戶權(quán)限
revoke all on app.* from 'user02'@'%'; # 刪除授權(quán)
show grants for 'user02'@'%'; # 查看用戶權(quán)限
如何查看權(quán)限
查看權(quán)限 用戶權(quán)限
用戶權(quán)限可以使用show命令查看,也可以查看數(shù)據(jù)庫表記錄。
show grants for 用戶;
查看數(shù)據(jù)表中的記錄
select * from mysql.user where user='user02'\G;
查看權(quán)限 查看數(shù)據(jù)庫權(quán)限信息
數(shù)據(jù)庫權(quán)限信息保存在mysql.db表中
select * from mysql.db where Db='app'\G;
查看權(quán)限 其他對(duì)象權(quán)限
MySQL常用權(quán)限
個(gè)人思維導(dǎo)圖
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的mysql 查看个人版,MySQL系列-权限管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Keychron 推出 Q0 Plus
- 下一篇: fedora ssh 安装mysql,F