mysql中有哪些權(quán)限

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

mysql中有哪些權(quán)限

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

mysql中有哪些權(quán)限

權(quán)限具體分類

1、全局層級

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

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

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

3、表層級

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

4、列層級

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

5、子程序?qū)蛹?/strong>

CREATE ROUTINE, ALTER ROUTINE, EXECUTE和GRANT權(quán)限適用于已存儲的子程序。這些權(quán)限可以被授予為全局層級和數(shù)據(jù)庫層級。而且,除了CREATE ROUTINE外,這些權(quán)限可以被授予為子程序?qū)蛹墸⒋鎯υ趍ysql.procs_priv表中

補充知識:

1、全局層級測試

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

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

mysql中有哪些權(quán)限

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

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

mysql中有哪些權(quán)限

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

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

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;?--可以看到無任何授權(quán)。 mysql>?show?grants?for?test; mysql>?select?*?from?mysql.db?where?user='test'G;

mysql中有哪些權(quán)限

mysql中有哪些權(quán)限

3、表層級測試

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

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中有哪些權(quán)限

4、列層級測試

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

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中有哪些權(quán)限

5、子程序?qū)蛹墱y試

創(chuàng)建一個測試賬號test,授子程序?qū)蛹壍臋?quán)限。如下所示:

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中有哪些權(quán)限

總結(jié)

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

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

推薦學習:mysql視頻教程

以上就是

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