Mysql—用戶表詳解(mysql.user)


MySQL是一個多用戶管理的數據庫,可以為不同用戶分配不同的權限,分為root用戶和普通用戶,root用戶為超級管理員,擁有所有權限,而普通用戶擁有指定的權限。

MySQL是通過權限表來控制用戶對數據庫訪問的,權限表存放在mysql數據庫中,主要的權限表有以下幾個:user,db,host,table_priv,columns_priv和procs_priv,先帶你了解的是user表。

通常用戶信息、修改用戶的密碼、刪除用戶及分配權限等就是在mysql數據庫的user表中。

用戶列(用戶連接MySQL數據庫需要輸入的信息)

Host:主機名,雙主鍵之一,值為%時表示匹配所有主機。User:用戶名,雙主鍵之一。Password:密碼名。

Host User Password
% domain_check *55B565DA3839E5955A68EA96EB735
localhost domain_check *55B565DA3839E5955A68EA96EB735
127.0.0.1 domain_check *55B565DA3839E5955A68EA96EB735
126.26.98.25 domain_check *55B565DA3839E5955A68EA96EB735
localhost    
::1 root *26C378D308851D5C717C13623EFD6
localhost root *26C378D308851D5C717C13623EFD6
127.0.0.1 root *26C378D308851D5C717C13623EFD6

(root,%),表示可以遠程登錄,並且是除服務器外的其他任何終端,%表示任意IP都可登錄。
(root,localhost),  表示可以本地登錄,即可以在服務器上登陸,localhost則只允許本地登錄。
(root,127.0.0.1 ),表示可以本機登陸,即可以在服務器上登陸
(root,sv01),表示主機名為sv1可以登陸,sv01具體指的哪台機器,可以在cat /etc/hostname查看
(root,::1) ,  表示本機可以登陸, 看密碼都是相同嘛,具體::1代表意義,待查

權限列

權限列決定了用戶的權限,描述了用戶在全局范圍內允許對數據庫和數據庫表進行的操作,字段類型都是枚舉Enum,值只能是Y或N,Y表示有權限,N表示沒有權限。

權限字段名稱 備注說明
Select_priv 確定用戶是否可以通過SELECT命令選擇數據
Insert_priv 確定用戶是否可以通過INSERT命令插入數據
Delete_priv 確定用戶是否可以通過DELETE命令刪除現有數據
Update_priv 確定用戶是否可以通過UPDATE命令修改現有數據
Create_priv 確定用戶是否可以創建新的數據庫和表
Drop_priv 確定用戶是否可以刪除現有數據庫和表
Reload_priv  確定用戶是否可以執行刷新和重新加載MySQL所用各種內部緩存的特定命令,包括日志、權限、主機、查詢和表重新加載權限表
 Shutdown_priv 確定用戶是否可以關閉MySQL服務器在將此權限提供給root賬戶之外的任何用戶時,都應當非常謹慎
Process_priv  確定用戶是否可以通過SHOW PROCESSLIST命令查看其他用戶的進程 
File_priv  確定用戶是否可以執行SELECT INTO OUTFILE和LOAD DATA INFILE命令

安全列

安全字段名稱 備注說明
ssl_type 支持ssl標准加密安全字段
ssl_cipher 支持ssl標准加密安全字段
x509_issuer 支持x509標准字段
x509_subject 支持x509標准字段
password_expired 密碼是否過期。Y:說明該用戶密碼已過期 N:沒有過期
plugin 5.5.7開始,mysql引入plugins以進行用戶連接時的密碼驗證,plugin創建外部/代理用戶
authentication_string 通過authentication_string可以控制兩者的映射關系,(PAM plugin等,PAM可以支持多個服務名)

資源控制列

控制字段名稱 字段類型 是否為空 默認值 備注說明
max_questions int(11)unsigned NO 0 每小時允許執行多少次查詢:0表示無限制
max_updates int(11)unsigned NO 0 每小時可以執行多少次更新:0表示無限制
max_connections int(11)unsigned NO 0 每小時可以建立的多少次連接:0表示無限制
max_user_connections int(11)unsigned NO 0 單用戶可以同時具有的連接數:0表示無限制

常用命令

查詢所有用戶
mysql> select Host,User,Password from user;

查詢用戶權限:all表示所有權限,select表示只查權限,update表示只改權限,delete表示只刪權限等。 mysql
> show grants for "user"@"host"; mysql> show grants for "root"@"localhost";
添加授權用戶(新創建的用戶,默認情況下是沒有任何權限的):使用root用戶連接到服務器 mysql
> create user "用戶名"@"IP地址" identified by "密碼"; mysql> create user "haidon"@"%" identified by "123456"; mysql> create user "haidon"@"localhost" identified by "123456"; IP地址的表示方式: 1.% 表示用戶可以從任何地址連接到服務器 2.localhost 表示用戶只能從本地連接到服務器 3.指定一個ip表示用戶只能從此ip連接到服務器
分配用戶權限(給用戶授權) mysql
> grant 權限列表 on 庫.表 to "用戶名"@"ip地址" with grant option; mysql> grant all privileges on *.* to "haidon"@"%" with grant option; mysql> grant all privileges on *.* to "haidon"@"%" identified by 'test' with grant option; mysql> grant all privileges on domain_check.tb_user to "haidon"@"localhost" with grant option; mysql> grant select on domain_check.tb_user to "haidon"@"localhost" with grant option; mysql> grant select,insert on domain_check.tb_user to "haidon"@"132.24.98.25" with grant option; 1.權限列表:selectupdatedeleteinsertalterdropcreate、...(show) 2.庫.表:*.*表示所有庫的所有表。with grant option表示它具有grant權限。密碼是test。 3.如果帶了 with grant option,那么用戶haidon可以將select ,update權限傳遞給其他用戶( 如xiaodon)。 4.如果沒帶 with grant option,那么用戶haidon不能給用戶xiaodon授權。 5.all后面加上privileges,具體到哪些權限時得看MySQL版本,5.7版本不加privileges,8.0版本加privileges。 6.mysql> insert into user values("%","haidon",password("test"),"Y","Y","Y","Y","Y","Y","Y","Y","Y","Y"); mysql> flush privileges; 這兩句和上面第3句grant的效果是一樣的。 7.mysql> insert into user (host,user) values("132.24.98.25","haidon"); mysql> insert into db values("132.24.98.25","haidon","Y","Y","Y","Y","Y","Y","N","N","N","N") mysql> flush privileges; 這三句和上面第6句grant的效果是一樣的。
收回用戶權限 mysql
> revoke all on *.* from "haidon"@"localhost"; mysql> revoke all on domain_check.tb_user from "haidon"@"localhost"; mysql> revoke select on *.* from "haidon"@"localhost";
刪除授權用戶 mysql
> drop user "用戶名"@"ip地址" mysql> drop user "haidon"@"%" mysql> delete from user where user='haidon'; mysql> flush privileges;

 

https://blog.csdn.net/lthirdonel/article/details/79011033

https://www.cnblogs.com/yang--yang/p/7607736.html

https://blog.csdn.net/zmx729618/article/details/78026497

https://www.cnblogs.com/cyl048/p/7992376.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM