字段名 | 字段類型 | 是否為空 | 默認值 | 說明 |
---|---|---|---|---|
Host | char(60) | NO | 無 | 主機名 |
User | char(32) | NO | 無 | 用戶名 |
authentication_string | text | YES | 無 | 密碼 |
表 1:user 表的用戶列
用戶登錄時,如果這 3 個字段同時匹配,MySQL 數(shù)據(jù)庫系統(tǒng)才會允許其登錄。創(chuàng)建新用戶時,也是設置這 3 個字段的值。修改用戶密碼時,實際就是修改 user 表的 authentication_string 字段的值。因此,這 3 個字段決定了用戶能否登錄。
權限列的字段決定了用戶的權限,用來描述在全局范圍內允許對數(shù)據(jù)和數(shù)據(jù)庫進行的操作。
權限大致分為兩大類,分別是高級管理權限和普通權限:
user 表的權限列包括 Select_priv、Insert_ priv 等以 priv 結尾的字段,這些字段值的數(shù)據(jù)類型為 ENUM,可取的值只有 Y 和 N:Y 表示該用戶有對應的權限,N 表示該用戶沒有對應的權限。從安全角度考慮,這些字段的默認值都為 N。
字段名 | 字段類型 | 是否為空 | 默認值 | 說明 |
---|---|---|---|---|
Select_priv | enum('N','Y') | NO | N | 是否可以通過SELECT 命令查詢數(shù)據(jù) |
Insert_priv | enum('N','Y') | NO | N | 是否可以通過 INSERT 命令插入數(shù)據(jù) |
Update_priv | enum('N','Y') | NO | N | 是否可以通過UPDATE 命令修改現(xiàn)有數(shù)據(jù) |
Delete_priv | enum('N','Y') | NO | N | 是否可以通過DELETE 命令刪除現(xiàn)有數(shù)據(jù) |
Create_priv | enum('N','Y') | NO | N | 是否可以創(chuàng)建新的數(shù)據(jù)庫和表 |
Drop_priv | enum('N','Y') | NO | N | 是否可以刪除現(xiàn)有數(shù)據(jù)庫和表 |
Reload_priv | enum('N','Y') | NO | N | 是否可以執(zhí)行刷新和重新加載MySQL所用的各種內部緩存的特定命令,包括日志、權限、主機、查詢和表 |
Shutdown_priv | enum('N','Y') | NO | N | 是否可以關閉MySQL服務器。將此權限提供給root賬戶之外的任何用戶時,都應當非常謹慎 |
Process_priv | enum('N','Y') | NO | N | 是否可以通過SHOW PROCESSLIST命令查看其他用戶的進程 |
File_priv | enum('N','Y') | NO | N | 是否可以執(zhí)行SELECT INTO OUTFILE和LOAD DATA INFILE命令 |
Grant_priv | enum('N','Y') | NO | N | 是否可以將自己的權限再授予其他用戶 |
References_priv | enum('N','Y') | NO | N | 是否可以創(chuàng)建外鍵約束 |
Index_priv | enum('N','Y') | NO | N | 是否可以對索引進行增刪查 |
Alter_priv | enum('N','Y') | NO | N | 是否可以重命名和修改表結構 |
Show_db_priv | enum('N','Y') | NO | N | 是否可以查看服務器上所有數(shù)據(jù)庫的名字,包括用戶擁有足夠訪問權限的數(shù)據(jù)庫 |
Super_priv | enum('N','Y') | NO | N | 是否可以執(zhí)行某些強大的管理功能,例如通過KILL命令刪除用戶進程;使用SET GLOBAL命令修改全局MySQL變量,執(zhí)行關于復制和日志的各種命令。(超級權限) |
Create_tmp_table_priv | enum('N','Y') | NO | N | 是否可以創(chuàng)建臨時表 |
Lock_tables_priv | enum('N','Y') | NO | N | 是否可以使用LOCK TABLES命令阻止對表的訪問/修改 |
Execute_priv | enum('N','Y') | NO | N | 是否可以執(zhí)行存儲過程 |
Repl_slave_priv | enum('N','Y') | NO | N | 是否可以讀取用于維護復制數(shù)據(jù)庫環(huán)境的二進制日志文件 |
Repl_client_priv | enum('N','Y') | NO | N | 是否可以確定復制從服務器和主服務器的位置 |
Create_view_priv | enum('N','Y') | NO | N | 是否可以創(chuàng)建視圖 |
Show_view_priv | enum('N','Y') | NO | N | 是否可以查看視圖 |
Create_routine_priv | enum('N','Y') | NO | N | 是否可以更改或放棄存儲過程和函數(shù) |
Alter_routine_priv | enum('N','Y') | NO | N | 是否可以修改或刪除存儲函數(shù)及函數(shù) |
Create_user_priv | enum('N','Y') | NO | N | 是否可以執(zhí)行CREATE USER命令,這個命令用于創(chuàng)建新的MySQL賬戶 |
Event_priv | enum('N','Y') | NO | N | 是否可以創(chuàng)建、修改和刪除事件 |
Trigger_priv | enum('N','Y') | NO | N | 是否可以創(chuàng)建和刪除觸發(fā)器 |
Create_tablespace_priv | enum('N','Y') | NO | N | 是否可以創(chuàng)建表空間 |
表 2:user表的權限列
如果要修改權限,可以使用 GRANT 語句為用戶賦予一些權限,也可以通過 UPDATE 語句更新 user 表的方式來設置權限。
安全列主要用來判斷用戶是否能夠登錄成功,user 表中的安全列如表 3 所示:
字段名 | 字段類型 | 是否為空 | 默認值 | 說明 |
---|---|---|---|---|
ssl_type | enum('','ANY','X509','SPECIFIED') | NO | 支持ssl標準加密安全字段 | |
ssl_cipher | blob | NO | 支持ssl標準加密安全字段 | |
x509_issuer | blob | NO | 支持x509標準字段 | |
x509_subject | blob | NO | 支持x509標準字段 | |
plugin | char(64) | NO | mysql_native_password | 引入plugins以進行用戶連接時的密碼驗證,plugin創(chuàng)建外部/代理用戶 |
password_expired | enum('N','Y') | NO | N | 密碼是否過期 (N 未過期,y 已過期) |
password_last_changed | timestamp | YES | 記錄密碼最近修改的時間 | |
password_lifetime | smallint(5) unsigned | YES | 設置密碼的有效時間,單位為天數(shù) | |
account_locked | enum('N','Y') | NO | N | 用戶是否被鎖定(Y 鎖定,N 未鎖定) |
表 3:user 表的安全列
注意:即使 password_expired 為“Y”,用戶也可以使用密碼登錄 MySQL,但是不允許做任何操作。
通常標準的發(fā)行版不支持 ssl,讀者可以使用 SHOW VARIABLES LIKE "have_openssl" 語句來查看是否具有 ssl 功能。如果 have_openssl 的值為 DISABLED,那么則不支持 ssl 加密功能。
資源控制列的字段用來限制用戶使用的資源,user 表中的資源控制列如表 4 所示。
字段名 | 字段類型 | 是否為空 | 默認值 | 說明 |
---|---|---|---|---|
max_questions | int(11) unsigned | NO | 0 | 規(guī)定每小時允許執(zhí)行查詢的操作次數(shù) |
max_updates | int(11) unsigned | NO | 0 | 規(guī)定每小時允許執(zhí)行更新的操作次數(shù) |
max_connections | int(11) unsigned | NO | 0 | 規(guī)定每小時允許執(zhí)行的連接操作次數(shù) |
max_user_connections | int(11) unsigned | NO | 0 | 規(guī)定允許同時建立的連接次數(shù) |
表 4:user 表的資源控制列
以上字段的默認值為 0,表示沒有限制。一個小時內用戶查詢或者連接數(shù)量超過資源控制限制,用戶將被鎖定,直到下一個小時才可以在此執(zhí)行對應的操作??梢允褂?GRANT 語句更新這些字段的值。
到此這篇關于淺談MySQL user權限表 的文章就介紹到這了,更多相關MySQL user權限表 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!