日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

《MySQL——关于grant赋权以及flush privileges》

發布時間:2023/12/1 数据库 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《MySQL——关于grant赋权以及flush privileges》 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先上總結圖:

對于賦予權限或者收回權限還是創建用戶,都會涉及兩個操作:

1、磁盤,mysql.user表,用戶行所有表示權限的字段的值的修改

2、內存,acl_users找到用戶對應的對象,將access值修改

grant授權

創建用戶 ’ua’@’%’,密碼是 pa

create user 'ua'@'%' identified by 'pa';

全局權限

grant all privileges on *.* to 'ua'@'%' with grant option;

grant命令對于全局權限,同時更新了磁盤和內存。命令完成后即時生效,接下來新創建的連接也會使用新權限

2、對于一個已經存在的連接,它的全局權限不受grant命令影響。(也就是說,如果全局權限信息已經在線程對象中,revoke操作影響布道這個線程對象)

回收權限可以這樣:

revoke all privileges on *.* from 'ua'@'%';

庫級別權限

grant all privileges on db1.* to 'ua'@'%' with grant option;

只要拿到了庫的權限,在切換出這個庫之前,線程對象對這個庫一直有權限。而只connect而不use,也就是沒有拿到庫的權限,這個庫權限被收走后,該線程對象就操作不了這個庫了。對于一個已經存在的連接,它的庫權限受grant命令影響

表權限和列權限

賦權語句如下:

create table db1.t1(id int, a int); grant all privileges on db1.t1 to 'ua'@'%' with grant option; GRANT SELECT(id), INSERT (id,a) ON mydb.mytbl TO 'ua'@'%' with grant option;

與db權限類似,對于這個兩個權限的操作,也會馬上影響到已經存在的連接。

flush privileges命令

該命令會清空acl_users數組,然后從mysql.user表中讀取數據重新加載,重新構造一個acl_user數組。

以數據表中的數據為準,會將全局、db、表、列權限內存數組重新加載一遍

用途:正常的grant命令之后,沒有必要跟著執行flush privileges

只有當磁盤數據表中權限數據和內存中的權限數據不一致時,才需要該語句來重建內存數據,達到一致狀態。

就如上面情況。

總結

以上是生活随笔為你收集整理的《MySQL——关于grant赋权以及flush privileges》的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。