如何使用 GCP 的新托管 MySQL 8.0 撤销和授予用户权限
How to revoke and grant permissions to a user with GCP's new managed MySQL 8.0
我在一周前使用 MySQL 5.7 测试 MySQL 服务器并申请权限时没有遇到任何问题,但在试用新的 8.0 版本时,我似乎无法更改权限,因为很容易,如果有的话。我以 root 身份远程登录,但本地云 shell 实例也是如此。
我正在尝试创建一个只能访问一个数据库的新用户,但我似乎无法通过首先撤销所有默认权限的部分。
我的方法:
CREATE USER 'test_user'@'%' IDENTIFIED BY '{password}';
没有报错。 (我也试过通过 GCP 的管理面板创建用户)
SHOW GRANTS FOR 'test_user'@'%';
returns GRANT USAGE ON *.* TO `test_user`@`%`
(我假设这意味着新用户拥有完全权限?)
然后,尝试删除所有权限以重新开始用户,
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'test_user'@'%';
显示:
Error: UNKNOWN_CODE_PLEASE_REPORT: Access denied for AuthId `root`@`%` to database 'mysql'.
我是 Mysql 的新手,所以我不确定这是我的错还是只是一个错误。谢谢!
首先要指出的是,GRANT USAGE ON *.* TO test_user@%
的意思是相反的,意思是用户没有权限! (更多信息:Mysql Reference)
其次,我认为导致错误的原因是 ALL PRIVILEGES 关键字,它可能已在 v8.0 中删除,因此只需在创建用户后直接授予他您想要的 table/database.
我在一周前使用 MySQL 5.7 测试 MySQL 服务器并申请权限时没有遇到任何问题,但在试用新的 8.0 版本时,我似乎无法更改权限,因为很容易,如果有的话。我以 root 身份远程登录,但本地云 shell 实例也是如此。
我正在尝试创建一个只能访问一个数据库的新用户,但我似乎无法通过首先撤销所有默认权限的部分。
我的方法:
CREATE USER 'test_user'@'%' IDENTIFIED BY '{password}';
没有报错。 (我也试过通过 GCP 的管理面板创建用户)
SHOW GRANTS FOR 'test_user'@'%';
returns GRANT USAGE ON *.* TO `test_user`@`%`
(我假设这意味着新用户拥有完全权限?)
然后,尝试删除所有权限以重新开始用户,
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'test_user'@'%';
显示:
Error: UNKNOWN_CODE_PLEASE_REPORT: Access denied for AuthId `root`@`%` to database 'mysql'.
我是 Mysql 的新手,所以我不确定这是我的错还是只是一个错误。谢谢!
首先要指出的是,GRANT USAGE ON *.* TO test_user@%
的意思是相反的,意思是用户没有权限! (更多信息:Mysql Reference)
其次,我认为导致错误的原因是 ALL PRIVILEGES 关键字,它可能已在 v8.0 中删除,因此只需在创建用户后直接授予他您想要的 table/database.