mysql用戶的增刪改查:創(chuàng)建用戶、刪除用戶、修改用戶名和密碼、設(shè)置密碼過期、查詢用戶

mysql用戶的增刪改查:創(chuàng)建用戶、刪除用戶、修改用戶名和密碼、設(shè)置密碼過期、查詢用戶

mysql中用戶的增刪改查命令總結(jié):

mysql用戶的增刪改查 命令示例
增(創(chuàng)建用戶) create user chushiyan;
create user chushiyan@localhost identified by '123456';
grant select on test.* to chushiyan0415@192.168.0.150 identified by '123456';
刪(刪除用戶) drop user chushiyan@localhost;
改(修改用戶名和密碼、設(shè)置密碼過期) rename user 'chushiyan'@'localhost' to 'chushiyan0415'@'localhost';
set password for chushiyan@localhost=password('12345678');
alter user chushiyan@localhost password expire;
查(查詢用戶) select user,host,password from mysql.user where user = 'chushiyan';

具體詳情如下。

一、創(chuàng)建用戶

用戶名長度不能超過16個(gè)字符。

用戶名和密碼大小寫敏感。比如,chushiyan和Chushiyan是兩個(gè)用戶名。

(一)使用create user創(chuàng)建用戶的最簡方式

# 創(chuàng)建用戶chushiyan,
create user chushiyan;

執(zhí)行上面的命令后,會在名為mysql的庫中的user表中插入一條記錄:

mysql> select user,host,password from mysql.user where user = 'chushiyan';
+-----------+------+----------+
| user      | host | password |
+-----------+------+----------+
| chushiyan | %    |          |
+-----------+------+----------+
1 row in set (0.35 sec)

注釋:

項(xiàng) 說明
host列 首先,我們要知道,mysql不僅通過用戶名、密碼驗(yàn)證用戶,同時(shí)還要根據(jù)host(來源主機(jī))驗(yàn)證。比如用戶jack,host值為192.168.0.11,那就只能從該IP主機(jī)連接Mysql,如果用其他IP主機(jī)即使用戶名密碼都正確,也無法連接mysql
host列值為%,是通配符,對應(yīng)任意長度的任意字符。跟查詢語句中的%是一樣的,如模糊查詢語句:select * from user where name like '%shi%' 。
因?yàn)槊頲reate user chushiyan; 中沒有指定host(來源主機(jī)),所以默認(rèn)是%,即該用戶可以從任意主機(jī)連接Mysql。
password列 password為空,因?yàn)槊頲reate user chushiyan; 中沒有指定。這樣的話,不用密碼也能登陸mysql。比如直接通過 mysql -uchushiyan 就能連接mysql。 當(dāng)然,不設(shè)置密碼是非常危險(xiǎn)的。

(二)使用create user創(chuàng)建用戶同時(shí)指定host、password

create user chushiyan@localhost identified by '123456';

執(zhí)行上面的命令后,查詢mysql.user表:

mysql> select user,host,password from mysql.user where user = 'chushiyan';
+-----------+-----------+-------------------------------------------+
| user      | host      | password                                  |
+-----------+-----------+-------------------------------------------+
| chushiyan | %         |                                           |
| chushiyan | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+-----------+-------------------------------------------+
2 rows in set (0.00 sec)

第一條記錄是前面插入的記錄。第二條才是現(xiàn)在插入的記錄。

注釋:

項(xiàng) 說明
user列 用戶名可以重復(fù)。mysql數(shù)據(jù)庫根據(jù)'user'@'host'來確認(rèn)記錄是否唯一。
這里已經(jīng)存在chushiyan@'%',如果執(zhí)行的是create user chushiyan identified by '123456'; 就必然報(bào)錯(cuò),因?yàn)闆]指定host,就會再創(chuàng)建chushiyan@'%'
host列 來源主機(jī)。這里指定了localhost
password列 加密后的密碼。共41位。mysql4.1之前是16位

(三)使用grant創(chuàng)建用戶同時(shí)指定host、password、權(quán)限

創(chuàng)建用戶chushiyan0415同時(shí)指定host、password,并且賦予他對test庫的查詢權(quán)限:

grant select on test.* to chushiyan0415@192.168.0.150 identified by '123456';

上面這個(gè)命令,其實(shí)就是下面這兩行命令的簡寫:

create user chushiyan0415@192.168.0.150 identified by '123456';
grant select on test.* to chushiyan0415@192.168.0.150;

總結(jié)grant主要是用來給用戶賦予權(quán)限,但是順帶手又可以用來創(chuàng)建用戶。

執(zhí)行上面的命令后,查詢mysql.user表:

mysql> select user,host,password from mysql.user where user like 'chushiyan%';
+---------------+---------------+-------------------------------------------+
| user          | host          | password                                  |
+---------------+---------------+-------------------------------------------+
| chushiyan     | %             |                                           |
| chushiyan     | localhost     | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| chushiyan0415 | 192.168.0.150 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+---------------+---------------+-------------------------------------------+
3 rows in set (0.00 sec)

附錄:grant賦予用戶增加、刪除、修改、查詢的權(quán)限:

grant insert on test.* to chushiyan0415@192.168.0.150 ;
grant delete on test.* to chushiyan0415@192.168.0.150 ;
grant update on test.* to chushiyan0415@192.168.0.150 ;
grant select on test.* to chushiyan0415@192.168.0.150 ;

或者直接寫成:

grant all on test.* to chushiyan0415@192.168.0.150 ;

二、刪除用戶

語法:

DROP USER user, [user], ...

示例:

drop user 'chushiyan0415'@'192.168.0.150';
drop user chushiyan@localhost;

三、修改用戶(修改用戶名和密碼、設(shè)置密碼過期)

(一)修改用戶名和來源主機(jī)

語法格式:

RENAME USER <舊用戶> TO <新用戶>

示例:

rename user 'chushiyan'@'localhost' to 'chushiyan0415'@'localhost';
rename user 'chushiyan0415'@'localhost' to 'chushiyan0415'@'192.168.0.150';

(一)修改用戶密碼

Mysql中的用戶沒有太多屬性,主要就是user、host、password,后兩者還不是必須的。所以用戶的修改主要就就是修改用戶密碼。所以在mysql5.6.6版本之前都沒有alter user命令,提供了set password命令:

set password for chushiyan@localhost=password('12345678');

注釋:

set password 固定的語法
for chushiyan@localhost for:指定要修改的用戶。如果是修改當(dāng)前用戶,可以省略。
password() 密碼函數(shù),對字符串進(jìn)行加密。mysql.user表中存放的是加密后的密碼,

(二)設(shè)置密碼過期

mysql5.6.6版本之后提供了alter user命令,主要用于設(shè)置密碼過期。什么是密碼過期?密碼過期不是用戶過期,用戶仍然可以登錄,只是無法做任何操作。

設(shè)置密碼過期示例:

alter user chushiyan@localhost password expire;

四、查詢用戶

使用select語句查詢mysql.user表即可:

select user,host,password from mysql.user where user = 'chushiyan';
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容