TL;DR: 在 Google Cloud Console 中创建用户后,不要忘记 REVOKE 'cloudsqlsuperuser'@'%' FROM 'your-user'@'%';如果您只想让该用户访问特定模式。
通过 Google Cloud Console 创建 MySQL 用户会自动添加 cloudsqlsuperuser 角色,该角色允许用户访问该 MySQL 实例上的所有内容:
显示 'user-from-gcp-console'@'%' 的补助金;
+------------------------------------------------ ------------+
|授予 user-from-gcp-console@% |
+------------------------------------------------ ------------+
|将 *.* 的使用权授予 `user-from-gcp-console`@`%` |
|将 `cloudsqlsuperuser`@`%` 授予 `user-from-gcp-console`@`%`|
+------------------------------------------------ ------------+
Google 在其知识库的关于 MySQL 用户文章中提到了这一点。
要创建只能访问一种架构的用户,您需要通过运行以下命令来创建没有控制台的用户:
创建用户“您的用户”@“%”已识别
使用“<a style="color:#f60; text-decoration:underline;" href="https://www.php.cn/zt/15713.html" target="_blank">mysql</a>_native_password”
BY '';
将 your-schema.* 上的所有内容授予 'your-user'@'%';
或者通过控制台创建用户,但不要忘记删除 cloudsqlsuperuser 角色:
// 通过 Google Cloud Console 创建用户
从“您的用户”@“%”中撤销“cloudsqlsuperuser”@“%”;
将 your-schema.* 上的所有内容授予 'your-user'@'%';
结束语
- 用户由用户名和主机唯一标识。 % 代表任何主机,当您将用户访问限制为仅某些主机时(例如 your-user%localhost),命令可能会有所不同。
- 您可以将 Cloud SQL 代理与 IAM 结合使用。请阅读 IAM 身份验证文章了解更多信息。
- 现在还有 Cloud SQL Studio [预览版],可能会派上用场。
- 有关 MySQL 数据库中用户管理的更多信息请点击此处。