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