解決MySQL8 #1227 – Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this ...


很奇怪今天MySQL8突然出現一些莫明的錯誤,比如我昨天在用的帳戶,今天操作時報如下錯誤:

1227 - Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation

具有root權限的用戶也報SYSTEM_USER權限不足,如何解決?看下面

MySQL8 Access denied解決

MySQL8版本中新增了一個system_user帳戶類型,當我們新增一個用戶test,並用root用戶對test進行密碼修改的操作時,系統不會報錯。

create user 'test'@'localhost' identified by 'test'; set password for 'test'@'localhost' = 'test1'; 

因為此時用戶test還沒有被授權。當用戶test被授權后,再使用root對test修改密碼:

grant all on *.* to 'test'@'localhost'; set password for 'test'@'localhost' = 'test1'; 

這個時候系統會報錯:

1> 1227 - Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation

我查閱了一下官方文檔,原因是由於root用戶沒有SYSTEM_USER權限,把權限加入后即可解決:

grant system_user on *.* to 'root'; 

然后再修改test密碼即可。不因為SYSTEM_USER權限涉及到所有帳戶操作,所以不僅是修改密碼,修改帳戶信息,授權等都會報這個錯,解決方法同樣是上面的操作。

參考

https://mysqlserverteam.com/the-system_user-dynamic-privilege/

https://zhuanlan.zhihu.com/p/66866225

https://www.uedbox.com/post/64673/



作者:HanssonLiu
鏈接:https://www.jianshu.com/p/1b565749bdab
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM