用習慣了MySQL5.7,當在MySQL8.0里創建用戶時,習慣性直接敲GRANT指令,結果報錯了:
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語句通常可以同時創建用戶并授予其權限。然而,在MySQL8版本中,引入了一些安全性改進和更嚴格的權限管理,導致了一些變化。
在MySQL8中,CREATE USER和GRANT語句被分開處理,這是為了提高安全性并允許更精細的權限管理。這個變化的主要原因在于:
分離權限管理: 在 MySQL 8 中,用戶的創建和權限授予被視為兩個不同的操作,這使得權限管理更加模塊化和靈活。這樣可以更精確地指定用戶的創建和授權權限,避免了不必要的權限賦予。
安全性提升: 分離用戶創建和權限授予操作可以減少潛在的安全風險。通過嚴格控制誰可以創建用戶以及誰可以授予權限,可以降低不當操作和濫用權限的風險。
在MySQL8版本中,如果你想創建用戶并授予其權限,需要按照以下步驟進行: 1)先CREATE USER:
CREATEUSER'username'@'localhost'IDENTIFIEDBY'password';
2)再GRANT權限:
GRANTSELECT,INSERTONdatabase.*TO'username'@'localhost';通過這種分離的方式,你可以更好地控制用戶的創建和權限分配,以及確保數據庫的安全性。
請注意,具體的語法和權限名稱可能會因你的需求和環境而有所不同,上述示例僅供參考。
審核編輯:劉清
-
MySQL
+關注
關注
1文章
844瀏覽量
27482 -
MYSQL數據庫
+關注
關注
0文章
96瀏覽量
9748 -
mysql觸發器
+關注
關注
0文章
6瀏覽量
1158
原文標題:為什么mysql8.0不能在grant時創建用戶
文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
在樹莓派上安裝和使用MySQL
樹莓派MYSQL安裝【附離線安裝mysql】
MySQL8.0 新特性:Partial Update of LOB Column
Linux環境下oracle創建和刪除表空間及用戶
安裝MySql鏡像的步驟
騰訊云打造MySQL 8.0全新引擎,進一步加速客戶產業升級
MySQL 5.7與MySQL 8.0 性能對比

MySql環境一鍵安裝應用程序免費下載
關于MySQL8.0版本選型的小技巧

評論