如何更改已创建的MySQL用户的权限?


69

我了解如何创建具有特权的新用户,但是为已创建的用户更改特权的正确方法是什么?

我们正在运行数据库审计,某些用户需要的访问方式才更多。另外,我不知道大多数这些MySQL用户的密码,所以我不想删除它们并创建新密码。

Answers:


107

列出用户:

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/zh-CN/access-control.html


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

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

我认为,(撤销所有权限从“用户” @“主机”;)应该是(撤销所有对从“用户” @“主机”;)谢谢,
尼古拉斯

1
此答案是完全错误的“刷新特权”不适用于使用Grant设置的特权。上面的过程导致用户在撤消和授予查询运行之间完全没有特权,并且无​​缘无故地刷新了授予缓存__如果对mysql.user表而不是对常规表执行常规查询,则可以正常工作使用授权,以及服务器在两次查询之间不会崩溃或停止。
–skullnobrains
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.