共計 2229 個字符,預計需要花費 6 分鐘才能閱讀完成。
本篇內容介紹了“mysql 中有什么權限”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
mysql 的權限:1、全局權限,適用于服務器中的所有數據庫,存儲在“mysql.user”中;2、數據庫權限,適用于數據庫中的所有目標,存儲在“mysql.db”和“mysql.host”中;3、表權限,適用于表中的所有列;4、列權限等等。
本教程操作環境:windows10 系統、mysql8.0.22 版本、Dell G3 電腦。
mysql 中有哪些權限
權限具體分類
1、全局層級
全局權限適用于一個給定服務器中的所有數據庫。這些權限存儲在 mysql.user 表中。GRANT ALL ON *.* 和 REVOKE ALL ON *.* 只授予和撤銷全局權限。
2、數據庫層級
數據庫權限適用于一個給定數據庫中的所有目標。這些權限存儲在 mysql.db 和 mysql.host 表中。GRANT ALL ON db_name.* 和 REVOKE ALL ON db_name.* 只授予和撤銷數據庫權限。
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 權限適用于已存儲的子程序。這些權限可以被授予為全局層級和數據庫層級。而且,除了 CREATE ROUTINE 外,這些權限可以被授予為子程序層級,并存儲在 mysql.procs_priv 表中
補充知識:
1、全局層級測試
創建一個測試賬號 test,授予全局層級的權限。如下所示:
mysql set global validate_password_policy=0;
mysql grant select,insert on *.* to test@ % identified by test
mysql flush privileges;
用下面兩種方式查詢授予 test 的權限。如下所示:
mysql show grants for test;
mysql select * from mysql.user where user= test
2、數據庫層級測試
創建一個測試賬號 test,授予數據庫層級的權限。如下所示:
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 -- 可以看到無任何授權。mysql show grants for test;
mysql select * from mysql.db where user= test
3、表層級測試
創建一個測試賬號 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;
4、列層級測試
創建一個測試賬號 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;
5、子程序層級測試
創建一個測試賬號 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 中有什么權限”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!