MySQL創(chuàng)建用戶的三種方法

前言:MySQL創(chuàng)建用戶的方法分成三種:INSERT USER表的方法、CREATE USER的方法、GRANT的方法。

一、賬號(hào)名稱的構(gòu)成方式

賬號(hào)的組成方式:用戶名+主機(jī)(所以可以出現(xiàn)重復(fù)的用戶名,跟其他的數(shù)據(jù)庫不一樣)

用戶名:16字符以內(nèi).

主機(jī)名:可以用主機(jī)名和IP地址,也可以用通配符

通配符說明:172.18.10.%(IP地址為172.18.10段的所有IP地址都可以訪問)


二、通過CREATE USER命令進(jìn)行創(chuàng)建用戶

腳本:CREATE USER 'username@host' [IDENTIFIED BY 'PASSWORD'] 其中密碼是可選項(xiàng);

例子:CREATE USER 'john@192.168.189.71' IDENTIFIED BY "123";

CREATE USER 'john@192.168.189.%' IDENTIFIED BY "123";

CREATE USER 'john@' ;

說明:該方法創(chuàng)建出來的用戶只有連接數(shù)據(jù)庫的權(quán)限,需要后續(xù)繼續(xù)授權(quán);

注意:用戶與@后主機(jī)地址是一體的,用一個(gè)分號(hào)連接,否則會(huì)報(bào)錯(cuò),ERROR 1396 (HY000): Operation CREATE USER failed for 'remote'@'%'


三、通過GRANT命令創(chuàng)建用戶

當(dāng)數(shù)據(jù)庫存在用戶的時(shí)候GRANT會(huì)對(duì)用戶進(jìn)行授權(quán),但當(dāng)數(shù)據(jù)庫不存在該用戶的時(shí)候,就會(huì)創(chuàng)建相應(yīng)的用戶并進(jìn)行授權(quán)。(說明上面那步是多余的)

腳本:

GRANT <ALL|priv1,priv2,.....privn> ON

[object] [IDENTIFIED BY 'password']

[WITH GRANT OPTION];

MAX_QUERIES_PER_HOUR count

MAX_UPDATES_PER_HOUR count

MAX_CONNECTIONS_PER_HOUR count

MAX_USER_CONNECTIONS count

說明:priv代表權(quán)限select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14個(gè)權(quán)限

例子:mysql>grant select,insert,update,delete,create,drop on test.hr to john@192.168.10.1 identified by '123';

說明:給主機(jī)為192.168.10.1的用戶john分配可對(duì)數(shù)據(jù)庫test的hr表進(jìn)行select,insert,update,delete,create,drop等操作的權(quán)限,并設(shè)定口令為123。

mysql>grant all privileges on test.* to joe@192.168.10.1 identified by '123';

說明:給主機(jī)為192.168.10.1的用戶john分配可對(duì)數(shù)據(jù)庫test所有表進(jìn)行所有操作的權(quán)限,并設(shè)定口令為123。

mysql>grant all privileges on *.* to john@192.168.10.1 identified by '123';

說明:給主機(jī)為192.168.10.1的用戶john分配可對(duì)所有數(shù)據(jù)庫的所有表進(jìn)行所有操作的權(quán)限,并設(shè)定口令為123。

mysql>grant all privileges on *.* to john@localhost identified by '123';

說明:用戶john分配可對(duì)所有數(shù)據(jù)庫的所有表進(jìn)行所有操作的權(quán)限,并設(shè)定口令為123。

查看權(quán)限:

show grants?for你的用戶;

show grants?forroot@'localhost';

show grants?for?webgametest@10.3.18.158;

show?createdatabase?dbname;? 這個(gè)可以看到創(chuàng)建數(shù)據(jù)庫時(shí)用到的一些參數(shù)。

showcreatetabletickets;??? 可以看到創(chuàng)建表時(shí)用到的一些參數(shù)


撤銷權(quán)限:

revoke all on *.* fromdba@localhost;

四、直接向mysql.user表插入記錄(該方法個(gè)人很少用)

因?yàn)閿?shù)據(jù)庫的用戶信息都是保存在mysql.user這張表的,所以直接對(duì)該表進(jìn)行插入語句,即可完成用戶的創(chuàng)建;

mysql> insert into user (host,user,password) values ('%','john',password('123'));

五、完成用戶的創(chuàng)建后,請(qǐng)記得刷新系統(tǒng)權(quán)限表;

mysql>flush privileges;


總結(jié):雖然創(chuàng)建用戶的方法有三種,個(gè)人還是傾向于第二種方法,一步到位,簡(jiǎn)單明了;

其他的兩種方法只是有助于理解數(shù)據(jù)庫的原理而已。


?轉(zhuǎn)自:http://blog.csdn.net/huaishu/article/details/50540814

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

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

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