国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL用戶賬戶管理和權限管理深入講解

2024-07-24 12:49:34
字體:
來源:轉載
供稿:網友

前言

MySQL 的權限表在數據庫啟動的時候就載入內存,當用戶通過身份認證后,就在內存中進行相應權限的存取,這樣,此用戶就可以在數據庫中做權限范圍內的各種操作了。

下面話不多說了,來一起看看詳細的介紹吧

mysql 的權限體系大致分為5個層級:

全局層級

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

數據庫層級

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

表層級

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

列層級

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

子程序層級

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

這些權限信息存儲在下面的系統表中:

mysql.user
mysql.db
mysql.host
mysql.table_priv
mysql.column_priv

當用戶連接進來,mysqld會通過上面的這些表對用戶權限進行驗證!

一、權限表的存取

在權限存取的兩個過程中,系統會用到 “mysql” 數據庫(安裝 MySQL 時被創建,數據庫名稱叫“mysql”) 中 user、host 和 db 這3個最重要的權限表。

在這 3 個表中,最重要的表示 user 表,其次是 db 表,host 表在大多數情況下并不使用。

user 中的列主要分為 4 個部分:用戶列、權限列、安全列和資源控制列。

通常用的最多的是用戶列和權限列,其中權限列又分為普通權限和管理權限。普通權限用于數據庫的操作,比如 select_priv、super_priv 等。

當用戶進行連接時,權限表的存取過程有以下兩個過程:

先從 user 表中的 host、user 和 password 這 3 個字段中判斷連接的 IP、用戶名、和密碼是否存在于表中,如果存在,則通過身份驗證,否則拒絕連接。

如果通過身份驗證、則按照以下權限表的順序得到數據庫權限:user -> db -> tables_priv -> columns_priv。

在這幾個權限表中,權限范圍依次遞減,全局權限覆蓋局部權限。上面的第一階段好理解,下面以一個例子來詳細解釋一下第二階段。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丹江口市| 福安市| 望城县| 南平市| 大连市| 江阴市| 刚察县| 玉环县| 绥阳县| 托里县| 漯河市| 郧西县| 龙泉市| 邹城市| 齐齐哈尔市| 凌源市| 吐鲁番市| 嘉峪关市| 荣成市| 西盟| 江口县| 中西区| 万全县| 永新县| 高州市| 南康市| 莱西市| 张家口市| 杂多县| 阳朔县| 泉州市| 小金县| 恩施市| 苗栗市| 肥乡县| 黄山市| 丹东市| 民勤县| 堆龙德庆县| 贞丰县| 平湖市|