用習(xí)慣了MySQL5.7,當(dāng)在MySQL8.0里創(chuàng)建用戶(hù)時(shí),習(xí)慣性直接敲GRANT指令,結(jié)果報(bào)錯(cuò)了:
mysql> grant all on *.* to 'user3'@'%' identified by '123456'; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by '123456'' at line 1
這是因?yàn)樵贛ySQL8版本之前,使用GRANT語(yǔ)句通常可以同時(shí)創(chuàng)建用戶(hù)并授予其權(quán)限。然而,在MySQL8版本中,引入了一些安全性改進(jìn)和更嚴(yán)格的權(quán)限管理,導(dǎo)致了一些變化。
在MySQL8中,CREATE USER和GRANT語(yǔ)句被分開(kāi)處理,這是為了提高安全性并允許更精細(xì)的權(quán)限管理。這個(gè)變化的主要原因在于:
分離權(quán)限管理: 在 MySQL 8 中,用戶(hù)的創(chuàng)建和權(quán)限授予被視為兩個(gè)不同的操作,這使得權(quán)限管理更加模塊化和靈活。這樣可以更精確地指定用戶(hù)的創(chuàng)建和授權(quán)權(quán)限,避免了不必要的權(quán)限賦予。
安全性提升: 分離用戶(hù)創(chuàng)建和權(quán)限授予操作可以減少潛在的安全風(fēng)險(xiǎn)。通過(guò)嚴(yán)格控制誰(shuí)可以創(chuàng)建用戶(hù)以及誰(shuí)可以授予權(quán)限,可以降低不當(dāng)操作和濫用權(quán)限的風(fēng)險(xiǎn)。
在MySQL8版本中,如果你想創(chuàng)建用戶(hù)并授予其權(quán)限,需要按照以下步驟進(jìn)行: 1)先CREATE USER:
CREATEUSER'username'@'localhost'IDENTIFIEDBY'password';
2)再GRANT權(quán)限:
GRANTSELECT,INSERTONdatabase.*TO'username'@'localhost';通過(guò)這種分離的方式,你可以更好地控制用戶(hù)的創(chuàng)建和權(quán)限分配,以及確保數(shù)據(jù)庫(kù)的安全性。
請(qǐng)注意,具體的語(yǔ)法和權(quán)限名稱(chēng)可能會(huì)因你的需求和環(huán)境而有所不同,上述示例僅供參考。
審核編輯:劉清
-
MySQL
+關(guān)注
關(guān)注
1文章
804瀏覽量
26528 -
MYSQL數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
0文章
96瀏覽量
9389 -
mysql觸發(fā)器
+關(guān)注
關(guān)注
0文章
6瀏覽量
1110
原文標(biāo)題:為什么mysql8.0不能在grant時(shí)創(chuàng)建用戶(hù)
文章出處:【微信號(hào):aming_linux,微信公眾號(hào):阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論