我了解如何创建一个具有特权的新用户,但是为已创建的用户更改特权的正确方法是什么?然后是必要的。另外,我不知道大多数这些MySQL用户的密码,所以我不想删除它们并创建新的密码。

#1 楼

列出用户:

select user,host from mysql.user;


显示特权:

show grants for 'user'@'host';


要更改特权,请先撤销。例如:

revoke all privileges on *.* from 'user'@'host';


然后根据需要授予适当的特权:

grant SELECT,INSERT,UPDATE,DELETE ON `db`.* TO 'user'@'host';


最后,刷新:

flush privileges;


MySQL文档非常出色:

https://dev.mysql.com/doc/refman/8.0/en/access- control.html

评论


好吧,如果不撤消,这将是特权的双重复制。

–谢尔盖
2012年9月27日12:38

mysql文档几乎不可读,这个答案要好得多

–提莫·霍维宁(Timo Huovinen)
16 Mar 1 '16 at 10:02

我认为(撤消'user'@'host'上。的所有特权;)应该是(撤消'user'@'host'上。的所有特权;)谢谢,

–尼古拉斯
18年7月12日在14:42

此答案是完全错误的“刷新特权”不适用于使用Grant设置的特权。上面的过程导致用户在吊销和授予查询运行之间完全没有特权,并且无​​缘无故地刷新了授予缓存__如果对mysql.user表而不是常规查询执行常规查询,则可以正常工作使用授权,以及服务器在两次查询之间不会崩溃或停止。

–颅脑
18年8月16日在9:48