程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL授權表概述和MySQL服務器的訪問控制

MySQL授權表概述和MySQL服務器的訪問控制

編輯:MySQL綜合教程

MySQL數據庫是應用比較多的數據庫系統,很受廣大用戶喜愛,MySQL授權表是怎樣的呢?MySQL服務器的訪問控制又是什麼情況?接下來我將一一為大家解答。

一、MySQL授權表概述

MySQL服務器的特點之一是,它在控制每個用戶行為方面提供了極大的靈活性。例如,我們既可以限制用戶訪問整個數據庫,也可以限制用戶訪問數據庫中特定的表,或者禁止訪問特定表中的特定列。由此看出MySQL服務器在用戶授權方面的靈活性。本文將向大家詳細介紹MySQL服務器是如何處理用戶權限的授與/撤回的,尤其是MySQL的授權表tables_priv和columns_priv。

MySQL的授權系統通常是通過MySQL數據庫中的五個表來實現的,這些表有user、db、host、tables_priv和columns_priv。這些表的用途各有不同,但是有一點是一致的,那就是都能夠檢驗用戶要做的事情是否為被允許的。每個表的字段都可分解為兩類,一類為作用域字段,一類為權限字段。作用域字段用來標識主機、用戶或者數據庫;而權限字段則用來確定對於給定主機、用戶或者數據庫來說,哪些動作是允許的。下面,我們對這些表的作用做簡單介紹:

user表——該表決定是否允許用戶連接到服務器。如果允許連接,權限字段則為該用戶的全局權限。
db表——用於決定哪些用戶可以從哪些主機訪問哪些數據庫。包含在db表中的權限適用於這個表標識的數據庫。
host表——當您想在db表的范圍之內擴展一個條目時,就會用到這個表。舉例來說,如果某個db允許通過多個主機訪問的話,那麼超級用戶就可以讓db表內將host列為空,然後用必要的主機名填充host表。
tables_priv表——該表與db表相似,不同之處是它用於表而不是數據庫。這個表還包含一個其他字段類型,包括timestamp和grantor兩個字段,用於存儲時間戳和授權方。在本文後面我們會對這個表做進一步的講解。
columns_priv——該表作用幾乎與db和tables_priv表一樣,不同之處是它提供的是針對某些表的特定列的權限。這個表也多出了一個字段類型,即其他字段,包括了一個timestamp列,用於存放時間戳。 在本文後面部分,我們還會對columns_priv表做進一步的說明。
下面,我們通過如下幾個方面對MySQL用戶授權過程加以介紹:首先介紹MySQL訪問控制過程,解答MySQL授權表是如何工作的;然後,我們介紹tables_priv和columns_priv授權表,我們會給出與MySQL的tables_priv表有關的解釋和范例。最後,我們介紹與columns_priv授權表有關的解釋和若干范例。

二、MySQL服務器的訪問控制

現在讓我們來看看MySQL服務器是如何通過用戶特權來控制用戶訪問的。雖然這乍聽起來好像挺嚇人的,但是通過一個例子的演示,您就會發現其實事情沒有我們想象的那麼難以理解。

首先,對用戶的訪問進行控制的時候,系統需要查看作為過濾器的一些授權表,這些表的使用過程是從一般到特殊,這些表包括:

User表
Db表
Host表
Tables_priv 表
Columns_priv 表
此外,一旦連接到了服務器,一個用戶可以使用兩種類型的請求:

管理請求(shutdown,reload,等)

數據庫相關的請求(insert,delete,等)

當用戶提交管理請求時,服務器只需查看user表,這是因為user表是唯一包含與管理工作有關的權限的一個表。然而,當用戶提交數據庫請求時,要查看的表就要更多了。

您可能已經注意到了,這些授權表的內容好像有些重復,例如user表中有select權限,同時host和user表中也有同樣的權限。但是,這樣做自有其道理。我們可以考慮一下user表中全局性的與數據庫相關的權限,也就是說,在這個表中授予用戶的權限對服務器上的所有數據庫都有效。這些權限可以被認為是超級用戶權限。相反,包含在host和db表之內的與數據庫相關的權限則是特定於主機或者數據庫的。因此,讓這個表內所有的權限保持為“N”不失為一個明智的選擇。

讓我們假定我們的user和db表如下所示:

 

通過上文的學習,相信大家現在對MySQL授權表以及MySQL服務器的訪問控制的疑惑已經解開,這裡我只是做了一個初步的介紹,不是很詳細,以後會在文章中繼續為大家介紹,希望對大家有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved