<b> </b>
在MySQL中,如何檢視一個使用者被授予了那些權限呢? 授予使用者的權限可能分全局層級權限、資料庫層級權限、表層級别權限、列層級别權限、子程式層級權限。具體分類如下:
<b>全局層級</b>
全局權限适用于一個給定伺服器中的所有資料庫。這些權限存儲在mysql.user表中。GRANT ALL ON *.*和REVOKE ALL ON *.*隻授予和撤銷全局權限。
<b>資料庫層級</b>
資料庫權限适用于一個給定資料庫中的所有目标。這些權限存儲在mysql.db和mysql.host表中。GRANT ALL ON db_name.*和REVOKE ALL ON db_name.*隻授予和撤銷資料庫權限。
<b>表層級</b>
表權限适用于一個給定表中的所有列。這些權限存儲在mysql.tables_priv表中。GRANT ALL ON db_name.tbl_name和REVOKE ALL ON db_name.tbl_name隻授予和撤銷表權限。
<b>列層級</b>
列權限适用于一個給定表中的單一列。這些權限存儲在mysql.columns_priv表中。當使用REVOKE時,您必須指定與被授權列相同的列。
<b>子程式層級</b>
CREATE ROUTINE, ALTER ROUTINE, EXECUTE和GRANT權限适用于已存儲的子程式。這些權限可以被授予為全局層級和資料庫層級。而且,除了CREATE ROUTINE外,這些權限可以被授予為子程式層級,并存儲在mysql.procs_priv表中。
1:那麼我們來建立一個測試賬号test,授予全局層級的權限。如下所示:
那麼可以用下面兩種方式查詢授予test的權限。如下所示:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuEmY0YTZ5EWY5QjMyQmZmFjYkJjNzYGMiVmMmJDMmJjNfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
2:那麼我們來建立一個測試賬号test,授予資料庫層級的權限。如下所示:
3:那麼我們來建立一個測試賬号test,授予表層級的權限。如下所示:
4:那麼我們來建立一個測試賬号test,授予列層級的權限。如下所示:
5:那麼我們來建立一個測試賬号test,授子程式層級的權限。如下所示:
是以,如果需要檢視使用者被授予的權限,就需要從這五個層級來檢視被授予的權限。從上到下或從小到上,逐一檢查各個層級被授予的權限。