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