MySQL中授權的粒度和時效性

2021-10-10 17:27:55 字數 2456 閱讀 8670

總結mysql中對許可權的控制力度是怎樣的?

能夠控制某個使用者只能訪問某乙個或某幾個資料庫嗎?

能夠控制某個使用者只能訪問某一些字母開頭的資料庫嗎?

能夠控制某個使用者只能訪問某個庫下面某個表的某些欄位嗎?

這些授權的時效性是如何的?對於已經存在的資料庫連線,這些授權能馬上生效嗎?

接下來帶你找到這些問題的答案。

如果需要讓某個使用者可以訪問mysql中以特定字母開頭的資料庫,可以使用%來匹配。這樣的需求常見於多租戶的場景中。

例如下面的授權語句的功能是給使用者'myuser'@'172.19.%'授予所有以'my_'開頭的資料庫的所有許可權。sql語句如下:

grant

allon

`my_%`.

*to'myuser'

@'172.19.%'

;

**注意:**上面的my_%前後的反引號"`"不能省略。否則授權不生效。如果不用%匹配,也可以使用英文狀態的下劃線_來匹配,每乙個_匹配乙個字元。

我們授權之後,這個授權動作何時生效?

對於新建立的連線,很明顯會使用我們剛剛授權結果來驗證新連線的使用者的許可權。

對於在授權更改之前已經存在的連線,這個新的授權會對它生效嗎?下面我們分別來做一下示例。

mysql中除了對所有資料庫可以授予許可權之外,還可以對某乙個資料庫進行授權。

例如對某個使用者只授予某個資料庫的所有許可權的語句如下:

grant

allon mysql_db.*to

'test1'

@'%'

;

上面的語句執行完成後,授權資訊除了對新建的連線生效之外,對於已經存在的連線也是馬上就生效的,也就是說已經存在的連線不需要退出重新登入就可以使用上面的授權。這個命令會在mysql.db表中插入乙個行資料,是關於test1對於mysql_db的許可權配置資訊。如下所示:

除了可以給某個使用者授予某個庫的許可權之外,更細粒度的授權,可以給某個使用者授予某張表的許可權。

例如對某個使用者只屬於某個庫下面的某個表的所有許可權,sql語句如下:

grant

allon mysql_db.user_info to test1;

上面的授權語句執行完成之後,授權資訊除了對新建的連線生效之外,對於已經存在的連線也馬上就生效的,也就是說已經存在的連線不需要退出重新登入就可以使用上面的授權。這個命令會在mysql.tables_priv表中插入一條資料。這條資料是關於使用者test1對錶mysql_db.user_info的許可權配置資訊。記錄如下所示:

更細粒度的許可權分配,mysql可以支援某個使用者對某個表的某個列有什麼許可權。

例如對某個使用者授予某個資料庫下面的某個表的某個列所有的許可權,sql如下所示:

grant

select

(name)

,insert

(name,hostname)

on mysql_db.test_tab to test1;

上面的語句是對使用者test1授予表mysql_db.test_tab上的列name查詢的許可權,在namehostname上有插入資料的許可權,但是沒有對hostname查詢的許可權。

上面語句執行完成後,授權資訊除了對新建的連線生效之外,對於已經存在的連線也是有馬上就生效的,也就是說已經存在的連線不需要退出重新登入就可以使用上面的授權。這個命令會在表mysql.columns_priv表中插入2條記錄,儲存使用者對某個表的某些列的許可權配置資訊。如下所示:

mysql時效性 時效性 Fatesinger

技術文章一般都有一定的時效性,現在技術更新如此之快,而且有些是不向前相容的,所有一些較老的文章可能讓我們走許多彎路。最近我就親自感受了一下。問題是這篇文章實在是太老了,連brew的安裝方法都改變了,其他的東西可想而知,期間踩了無數的坑,最後還是提著電腦再酒廊安安心心的搞了1個多小時才搞定,要知道之前...

Hadoop No 12之資料採集的時效性

資料採集的時效性,指的是可進行資料採集的時間與hadoop中工具可訪問數量的時間之間的間隔.採集架構的時間分類會對儲存媒介和採集方法造成很大的影響.一般來說,在設計應用的採集構架之前建議使用以下分類中的一種.需要注意的是,隨著任務的實現時間達到實時,實現的複雜性和成本也會大大增加.從批量處理處罰 比...

談目前SEO資料的時效性 正確性與實用性

核心提示 真正的seo不是建立在理論上的,也不是幾招幾式的侷限性技術,seo是乙個工具,或乙個系統的工程。目前是seo初學者最困難的階段。可能老seoer不以為然,覺得早些時候自己學習seo時,邊啃english邊尋找新大陸般的找資料更難。我們不妨來分析一下現狀 seo資料的時效性www.cppcn...