簡體   English   中英

無法在 mysql 8.0.17 上授予選擇

[英]Cannot Grant select on mysql 8.0.17

我想向每個主機的用戶授予選擇權限,但出現錯誤,您不允許創建用戶

mysql> GRANT SELECT ON *.* TO 'alice'@'%' WITH GRANT OPTION;

ERROR 1410 (42000): 您不能使用 GRANT 創建用戶

我不想創建新用戶,因為我使用了命令 CREATE USER

我試圖創建一個新用戶,但授權命令也失敗了。

在這個 MySql 版本(8 及以上)中,一個好主意(也是一個好實踐)是配置 ROLES,然后為其設置用戶,就像這篇好文章(閱讀它,非常好!)。

您可以將您的角色設置為多個用戶。

像這樣的東西:

1 - 創建角色:

create ROLE name_of_your_role;

2 - 為 ROLE 設置必要的權限,記住,在這個 MySql 版本中你不需要 Flush Privileges 示例(根據需要更改數據庫名稱或通配符的 mydatabase 表達式):

grant alter,create,delete,drop,index,insert,select,update,trigger,alter
 routine,create routine, execute, create temporary tables 
on mydatabase.* to 'name_of_your_role';

3 - 為您的用戶授予角色:

grant 'name_of_your_role' to 'alice';

4 - 將此角色設置為您的用戶的默認角色:

set default role 'name_of_your_role' to 'alice';

我只是有同樣的問題。

但我的問題是我在CREATE USER查詢中犯了一個錯誤。 我想創建grafana用戶,但執行了以下查詢: CREATE USER grafan IDENTIFIED BY '<password>'; (請注意,我在這里創建了grafan用戶而不是grafana

然后,當我執行查詢GRANT SELECT ON mydb.* TO grafana@'%'; 我收到錯誤ERROR 1410 (42000): You are not allowed to create a user with GRANT 沒有提到用戶grafana不存在。

我花了大約 20 分鍾來弄清楚我做錯了什么。

因此,如果您正在閱讀本文,只需檢查您是否正確創建了用戶。 希望這會對某人有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM