MySQL Google Cloud SQL 上的 8.0:如何设置每个数据库的权限
MySQL 8.0 on Google Cloud SQL: How to set per-database permissions
我在 Google 云 SQL 上有一个 MySQL 8.0 数据库。我有两个应用程序在同一个 MySQL 实例上访问两个不同的数据库。我正在尝试设置访问控制,以便每个应用程序都有自己的用户,并且该用户只能访问其中一个数据库。但是,当我使用 Cloud SQL 界面创建新用户时,该用户可以访问 MySQL 实例上的所有数据库。
Google documentation 给出以下信息:
In MySQL 8.0 for Cloud SQL, when you create a new user, the user is automatically granted the cloudsqlsuperuser
role. The cloudsqlsuperuser
role is a Cloud SQL role that contains a number of MySQL privileges. This role gives the user all of the MySQL static privileges, except for SUPER and FILE.
是否可以从用户中删除此 cloudsqlsuperuser
角色并单独授予用户对数据库的访问权限?这是怎么做到的?
如果您使用云 SQL API,您将在云 SQL 级别添加用户(作为根用户,超级用户角色)。
如果您想在数据库中管理用户和权限,您必须登录数据库(使用超级用户帐户)并在数据库中创建您的用户并在数据库中授予他们权限。你不能在外面这样做(通过 API 调用、terraform 或其他方式)。
是的,自动化很无聊。
我在 Google 云 SQL 上有一个 MySQL 8.0 数据库。我有两个应用程序在同一个 MySQL 实例上访问两个不同的数据库。我正在尝试设置访问控制,以便每个应用程序都有自己的用户,并且该用户只能访问其中一个数据库。但是,当我使用 Cloud SQL 界面创建新用户时,该用户可以访问 MySQL 实例上的所有数据库。
Google documentation 给出以下信息:
In MySQL 8.0 for Cloud SQL, when you create a new user, the user is automatically granted the
cloudsqlsuperuser
role. Thecloudsqlsuperuser
role is a Cloud SQL role that contains a number of MySQL privileges. This role gives the user all of the MySQL static privileges, except for SUPER and FILE.
是否可以从用户中删除此 cloudsqlsuperuser
角色并单独授予用户对数据库的访问权限?这是怎么做到的?
如果您使用云 SQL API,您将在云 SQL 级别添加用户(作为根用户,超级用户角色)。
如果您想在数据库中管理用户和权限,您必须登录数据库(使用超级用户帐户)并在数据库中创建您的用户并在数据库中授予他们权限。你不能在外面这样做(通过 API 调用、terraform 或其他方式)。
是的,自动化很无聊。