MySQL創(chuàng)建用戶(hù)和授權(quán)命令grant詳解

創(chuàng)建用戶(hù)

數(shù)據(jù)庫(kù)權(quán)限適用于一個(gè)給定數(shù)據(jù)庫(kù)中的所有目標(biāo)朱盐。這些權(quán)限存儲(chǔ)在mysql.db和mysql.host表中似嗤。GRANT ALL PRIVILEGES ON db_name 和REVOKE ALL PRIVILEGES ON db_name只授予和撤銷(xiāo)數(shù)據(jù)庫(kù)權(quán)限。

//創(chuàng)建用戶(hù)test鸦列,'test'@'%'表示可以被遠(yuǎn)程訪問(wèn)
//如果是‘test’@'localhost'发乔,表示只能本地訪問(wèn)
mysql> create user 'test'@'%' identified by '111111';
Query OK, 0 rows affected (0.13 sec)

//為用戶(hù)test授予對(duì)數(shù)據(jù)庫(kù)db_one 的操作權(quán)限
mysql> grant all privileges on db_one to 'test'@'%';
Query OK, 0 rows affected (0.14 sec)

//刷新權(quán)限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

查看權(quán)限

使用mysql> show grants for 'test'@'%';或者mysql> show grants for test;都可以

//授權(quán)之前
mysql> show grants for 'test'@'%';
+-----------------------------------+
| Grants for test@%                |
+-----------------------------------+
 //這里可以看到默認(rèn)授權(quán)是USAGE茄螃,指的是無(wú)權(quán)限气筋;
| GRANT USAGE ON *.* TO `test`@`%` | 
+-----------------------------------+
1 row in set (0.00 sec)

//授權(quán)之后
mysql> show grants for test2;
+---------------------------------------------------+
| Grants for test2@%                                |
+---------------------------------------------------+
| GRANT USAGE ON *.* TO `test`@`%`           
// 從這里可以看出,用戶(hù)test旋圆,對(duì)數(shù)據(jù)庫(kù)db_one,用戶(hù)所有權(quán)限(增宠默、刪、改灵巧、查)      |
| GRANT ALL PRIVILEGES ON `db_one`.* TO `test`@`%` | 
+---------------------------------------------------+
2 rows in set (0.00 sec)

MySQL授權(quán)命令grant的使用方法

本文實(shí)例搀矫,運(yùn)行于 MySQL 8.0.12 。
查看mysql版本號(hào)mysql> select version();

MySQL 賦予用戶(hù)權(quán)限命令的簡(jiǎn)單格式可概括為:

grant 權(quán)限 on 數(shù)據(jù)庫(kù)對(duì)象 to 用戶(hù)

一刻肄、grant (授權(quán))普通數(shù)據(jù)用戶(hù)瓤球,查詢(xún)、插入敏弃、更新卦羡、刪除 數(shù)據(jù)庫(kù)中所有表數(shù)據(jù)的權(quán)利。

grant select on testdb.* to test@'%' ;
grant insert on testdb.* to test@'%' ;
grant update on testdb.* to test@'%'; 
grant delete on testdb.* to test@'%';

或者麦到,用一條 MySQL 命令來(lái)替代:

grant select, insert, update, delete on testdb.* to test@'%';

二绿饵、grant (授權(quán))數(shù)據(jù)庫(kù)開(kāi)發(fā)人員,創(chuàng)建表瓶颠、索引拟赊、視圖、存儲(chǔ)過(guò)程粹淋、函數(shù)吸祟。瑟慈。。等權(quán)限屋匕。

  • grant 創(chuàng)建葛碧、修改、刪除 MySQL 數(shù)據(jù)表結(jié)構(gòu)權(quán)限炒瘟。
grant create on testdb.* to developer@'192.168.0.%';
grant alter on testdb.* to developer@'192.168.0.%';
grant drop on testdb.* to developer@'192.168.0.%';
  • grant 操作 MySQL 外鍵權(quán)限吹埠。
grant references on testdb.* to developer@'192.168.0.%';
  • grant 操作 MySQL 臨時(shí)表權(quán)限。
grant create temporary tables on testdb.* to developer@'192.168.0.%';
  • grant 操作 MySQL 索引權(quán)限疮装。
grant index on testdb.* to developer@'192.168.0.%';
  • grant 操作 MySQL 視圖缘琅、查看視圖源代碼 權(quán)限。
grant create view on testdb.* to developer@'192.168.0.%';
grant show view on testdb.* to developer@'192.168.0.%';
  • grant 操作 MySQL 存儲(chǔ)過(guò)程廓推、函數(shù) 權(quán)限刷袍。
grant create routine on testdb.* to developer@'192.168.0.%'; -- now, can show procedure status grant alter routine on testdb.* to developer@'192.168.0.%'; -- now, you can drop a procedure grant execute on testdb.* to developer@'192.168.0.%';

三、grant 普通 DBA 管理 某一個(gè) MySQL 數(shù)據(jù)庫(kù)的權(quán)限樊展。

grant all privileges on testdb to dba@'localhost'

其中呻纹,關(guān)鍵字 privileges 可以省略。

四专缠、grant 高級(jí) DBA 管理 MySQL 中所有數(shù)據(jù)庫(kù) 的權(quán)限雷酪。

grant all on *.* to dba@'%'

五、MySQL grant 權(quán)限涝婉,分別可以作用在多個(gè)層次上哥力。

  • grant 作用在整個(gè) MySQL 服務(wù)器上:
//用戶(hù)test可以查詢(xún) MySQL 中所有數(shù)據(jù)庫(kù)中的表。
grant select on *.* to test@'%';  

 //用戶(hù)test 可以管理 MySQL 中的所有數(shù)據(jù)庫(kù)墩弯。
grant all on *.* to test@'%';
  • . grant 作用在單個(gè)數(shù)據(jù)庫(kù)上:
//test可以查詢(xún) testdb 中的表吩跋。
grant select on testdb.* to test@'%'; 
  • .grant 作用在單個(gè)數(shù)據(jù)表上:
grant select, insert, update, delete on testdb.orders to test@'%';

這里在給一個(gè)用戶(hù)授權(quán)多張表時(shí),可以多次執(zhí)行以上語(yǔ)句渔工。例如:

grant select(user_id,username) on smp.users to mo_user@'%' identified by '123345';
grant select on smp.mo_sms to mo_user@'%' identified by '123345';
  • grant 作用在表中的列上:
grant select(id, se, rank) on testdb.apache_log to test@'%';
  • grant 作用在存儲(chǔ)過(guò)程锌钮、函數(shù)上:
grant execute on procedure testdb.pr_add to 'test'@''%'' 
grant execute on function testdb.fn_add to 'test'@''%''

六、查看 MySQL 用戶(hù)權(quán)限

查看當(dāng)前用戶(hù)(自己)權(quán)限:

show grants;

查看其他 MySQL 用戶(hù)權(quán)限:

show grants for test@'%';

或者

show grants for test;

撤銷(xiāo)已經(jīng)賦予給 MySQL 用戶(hù)權(quán)限的權(quán)限引矩。

revoke 跟 grant 的語(yǔ)法差不多梁丘,只需要把關(guān)鍵字 “to” 換成 “from” 即可:

grant all on *.* to test@'%';
revoke all on *.* from test@'%';

MySQL grant、revoke 用戶(hù)權(quán)限注意事項(xiàng)

1. grant, revoke 用戶(hù)權(quán)限后脓魏,該用戶(hù)只有重新連接 MySQL 數(shù)據(jù)庫(kù)兰吟,權(quán)限才能生效。

2. 如果想讓授權(quán)的用戶(hù)茂翔,也可以將這些權(quán)限 grant 給其他用戶(hù)混蔼,需要選項(xiàng) “grant option“

grant select on testdb.* to test@'%' with grant option;

這個(gè)特性一般用不到。實(shí)際中珊燎,數(shù)據(jù)庫(kù)權(quán)限最好由 DBA 來(lái)統(tǒng)一管理惭嚣。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末遵湖,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子晚吞,更是在濱河造成了極大的恐慌延旧,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件槽地,死亡現(xiàn)場(chǎng)離奇詭異迁沫,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)捌蚊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)集畅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人缅糟,你說(shuō)我怎么就攤上這事挺智。” “怎么了窗宦?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵赦颇,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我赴涵,道長(zhǎng)媒怯,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任髓窜,我火速辦了婚禮沪摄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘纱烘。我一直安慰自己,他們只是感情好祈餐,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布擂啥。 她就那樣靜靜地躺著,像睡著了一般帆阳。 火紅的嫁衣襯著肌膚如雪哺壶。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,441評(píng)論 1 310
  • 那天蜒谤,我揣著相機(jī)與錄音山宾,去河邊找鬼。 笑死鳍徽,一個(gè)胖子當(dāng)著我的面吹牛资锰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播阶祭,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼绷杜,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼直秆!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起鞭盟,我...
    開(kāi)封第一講書(shū)人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤圾结,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后齿诉,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體筝野,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年粤剧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了歇竟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡俊扳,死狀恐怖途蒋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情馋记,我是刑警寧澤号坡,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站梯醒,受9級(jí)特大地震影響宽堆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜茸习,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一畜隶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧号胚,春花似錦籽慢、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至弃秆,卻和暖如春届惋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背菠赚。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工脑豹, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人衡查。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓瘩欺,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親峡捡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子击碗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容