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

Clu*_*tch 71 mysql

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

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

War*_*ner 114

列出用户:

select user,host from mysql.user;
Run Code Online (Sandbox Code Playgroud)

显示权限:

show grants for 'user'@'host';
Run Code Online (Sandbox Code Playgroud)

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

revoke all privileges on *.* from 'user'@'host';
Run Code Online (Sandbox Code Playgroud)

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

grant SELECT,INSERT,UPDATE,DELETE ON `db`.* TO 'user'@'host';
Run Code Online (Sandbox Code Playgroud)

最后,冲洗:

flush privileges;
Run Code Online (Sandbox Code Playgroud)

MySQL 文档非常好:

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

  • mysql 文档几乎无法阅读,这个答案要好得多 (9认同)
  • 那么没有撤销,这将是重复的特权; (3认同)
  • 这个答案是完全错误的“刷新权限”不适用于使用授予设置的权限。上述过程导致用户在运行撤销和授予查询之间根本没有任何特权,并且无​​缘无故地刷新授予缓存__如果您对 mysql.user 表执行常规查询而不是执行查询,那么这将起作用使用授权并且服务器在查询之间没有崩溃或停止。 (2认同)