mysql中有哪些權限

mysql的權限:1、全局權限,適用于服務器中的所有數(shù)據(jù)庫,存儲在“mysql.user”中;2、數(shù)據(jù)庫權限,適用于數(shù)據(jù)庫中的所有目標,存儲在“mysql.db”和“mysql.host”中;3、表權限,適用于表中的所有列;4、列權限等等。

mysql中有哪些權限

本教程操作環(huán)境:windows10系統(tǒng)、mysql8.0.22版本、Dell G3電腦。

mysql中有哪些權限

權限具體分類

1、全局層級

全局權限適用于一個給定服務器中的所有數(shù)據(jù)庫。這些權限存儲在mysql.user表中。GRANT ALL ON *.*和REVOKE ALL ON *.*只授予和撤銷全局權限。

2、數(shù)據(jù)庫層級

數(shù)據(jù)庫權限適用于一個給定數(shù)據(jù)庫中的所有目標。這些權限存儲在mysql.db和mysql.host表中。GRANT ALL ON db_name.*和REVOKE ALL ON db_name.*只授予和撤銷數(shù)據(jù)庫權限。

3、表層級

表權限適用于一個給定表中的所有列。這些權限存儲在mysql.tables_priv表中。GRANT ALL ON db_name.tbl_name和REVOKE ALL ON db_name.tbl_name只授予和撤銷表權限。

4、列層級

列權限適用于一個給定表中的單一列。這些權限存儲在mysql.columns_priv表中。當使用REVOKE時,您必須指定與被授權列相同的列。

5、子程序層級

CREATE ROUTINE, ALTER ROUTINE, EXECUTE和GRANT權限適用于已存儲的子程序。這些權限可以被授予為全局層級和數(shù)據(jù)庫層級。而且,除了CREATE ROUTINE外,這些權限可以被授予為子程序層級,并存儲在mysql.procs_priv表中

補充知識:

1、全局層級測試

創(chuàng)建一個測試賬號test,授予全局層級的權限。如下所示:

mysql>?set?global?validate_password_policy=0; mysql>?grant?select,insert?on?*.*?to?test@'%'?identified?by?'test'; mysql>?flush?privileges;

mysql中有哪些權限

用下面兩種方式查詢授予test的權限。如下所示:

mysql>?show?grants?for?test; mysql>?select?*?from?mysql.user?where?user='test'G;

mysql中有哪些權限

2、數(shù)據(jù)庫層級測試

創(chuàng)建一個測試賬號test,授予數(shù)據(jù)庫層級的權限。如下所示:

mysql>?drop?user?test; mysql>?grant?select,insert,update,delete?on?jpcpdb.*?to?test@'%'?identified?by?'test@123'; mysql>?select?*?from?mysql.user?where?user='test'G;?--可以看到無任何授權。 mysql>?show?grants?for?test; mysql>?select?*?from?mysql.db?where?user='test'G;

mysql中有哪些權限

mysql中有哪些權限

3、表層級測試

創(chuàng)建一個測試賬號test,授予表層級的權限。如下所示:

mysql>?drop?user?test; mysql>?flush?privileges; mysql>?grant?all?on?jpcpdb.user?to?test@'%'?identified?by?'test@123'; mysql>?show?grants?for?test; mysql>?select?*?from?mysql.tables_privG;

mysql中有哪些權限

4、列層級測試

創(chuàng)建一個測試賬號test,授予列層級的權限。如下所示:

mysql>?drop?user?test; mysql>?flush?privileges; mysql>?grant?select?(id,?name)?on?jpcpdb.user?to?test@'%'?identified?by?'test@123'; mysql>?flush?privileges; mysql>?select?*?from?mysql.columns_priv; mysql>?show?grants?for?test;

mysql中有哪些權限

5、子程序層級測試

創(chuàng)建一個測試賬號test,授子程序層級的權限。如下所示:

mysql>?DROP?PROCEDURE?IF?EXISTS?PRC_TEST; mysql>?DELIMITER?// mysql>?CREATE?PROCEDURE?PRC_TEST() ->?BEGIN ->?SELECT?*?FROM?user; ->?END?// mysql>?DELIMITER?; mysql>?grant?execute?on?procedure?jpcpdb.PRC_TEST?to?test@'%'?identified?by?'test@123'; mysql>?flush?privileges; mysql>?show?grants?for?test;

mysql>?select?*?from?mysql.procs_priv?where?User=’test’;mysql中有哪些權限

總結

如果需要查看用戶被授予的權限,就需要從這五個層級來查看被授予的權限。從上到下或從小到上,逐一檢查各個層級被授予的權限。

數(shù)據(jù)庫是一個?單位或是一個應用領域的通用數(shù)據(jù)處理系統(tǒng),它存儲的是屬于企業(yè)和事業(yè)部門、?團體和個人的有關數(shù)據(jù)的?集合。數(shù)據(jù)庫中的數(shù)據(jù)是從全局觀點出發(fā)建立的,按一定的?數(shù)據(jù)模型進行組織、描述和存儲。其結構基于數(shù)據(jù)間的自然聯(lián)系,從而可提供一切必要的存取?路徑,且數(shù)據(jù)不再針對某一應用,而是面向全組織,具有整體的結構化特征。

推薦學習:mysql視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享