MySQL授權(quán)系統(tǒng)的五個(gè)表
MySQL授權(quán)系統(tǒng)是由數(shù)據(jù)庫中的五個(gè)表來實(shí)現(xiàn),下面就為您詳細(xì)介紹這五個(gè)和MySQL授權(quán)系統(tǒng)相關(guān)的表,如果您感興趣的話,不妨一看。
MySQL服務(wù)器的特點(diǎn)之一是,它在控制每個(gè)用戶行為方面提供了極大的靈活性。例如,我們既可以限制用戶訪問整個(gè)數(shù)據(jù)庫,也可以限制用戶訪問數(shù)據(jù)庫中特定的表,或者禁止訪問特定表中的特定列。由此看出MySQL服務(wù)器在用戶授權(quán)方面的靈活性。本文將向大家詳細(xì)介紹MySQL服務(wù)器是如何處理用戶權(quán)限的授與/撤回的,尤其是MySQL的授權(quán)表tables_priv和columns_priv。
MySQL授權(quán)系統(tǒng)通常是通過MySQL數(shù)據(jù)庫中的五個(gè)表來實(shí)現(xiàn)的,這些表有user、db、host、tables_priv和columns_priv。這些表的用途各有不同,但是有一點(diǎn)是一致的,那就是都能夠檢驗(yàn)用戶要做的事情是否為被允許的。每個(gè)表的字段都可分解為兩類,一類為作用域字段,一類為權(quán)限字段。作用域字段用來標(biāo)識主機(jī)、用戶或者數(shù)據(jù)庫;而權(quán)限字段則用來確定對于給定主機(jī)、用戶或者數(shù)據(jù)庫來說,哪些動作是允許的。下面,我們對這些表的作用做簡單介紹:
user表——該表決定是否允許用戶連接到服務(wù)器。如果允許連接,權(quán)限字段則為該用戶的全局權(quán)限。
db表——用于決定哪些用戶可以從哪些主機(jī)訪問哪些數(shù)據(jù)庫。包含在db表中的權(quán)限適用于這個(gè)表標(biāo)識的數(shù)據(jù)庫。
host表——當(dāng)您想在db表的范圍之內(nèi)擴(kuò)展一個(gè)條目時(shí),就會用到這個(gè)表。舉例來說,如果某個(gè)db允許通過多個(gè)主機(jī)訪問的話,那么超級用戶就可以讓db表內(nèi)將host列為空,然后用必要的主機(jī)名填充host表。
tables_priv表——該表與db表相似,不同之處是它用于表而不是數(shù)據(jù)庫。這個(gè)表還包含一個(gè)其他字段類型,包括timestamp和grantor兩個(gè)字段,用于存儲時(shí)間戳和授權(quán)方。在本文后面我們會對這個(gè)表做進(jìn)一步的講解。
columns_priv——該表作用幾乎與db和tables_priv表一樣,不同之處是它提供的是針對某些表的特定列的權(quán)限。這個(gè)表也多出了一個(gè)字段類型,即其他字段,包括了一個(gè)timestamp列,用于存放時(shí)間戳。 在本文后面部分,我們還會對columns_priv表做進(jìn)一步的說明。
【編輯推薦】






