我在Google Cloud SQL上有一个MySQL 8.0数据库。我有两个应用程序访问同一MySQL实例上的两个不同数据库。我正在尝试设置访问控制,以便每个应用程序都有自己的用户,并且该用户只能访问其中一个数据库。但是,当我使用CloudSQL接口创建一个新用户时,该用户可以访问MySQL实例上的所有数据库。
谷歌文档提供了以下信息:
在MySQL 8.0 for Cloud SQL中,当您创建新用户时,该用户将自动被授予
cloudsqlsuperuser
角色。cloudsqlsuperuser
角色是一个云SQL角色,包含许多MySQL权限。除了SUPER和FILE之外,此角色为用户提供MySQL的所有静态权限。
是否可以从用户中删除此cloudsqlsuperuser
角色,并允许用户单独访问数据库?这是怎么做到的?
如果您使用云SQL API,您将添加云SQL级别的用户(作为根用户,超级用户角色(。
如果要管理数据库中的用户和权限,则必须登录到数据库(使用超级用户帐户(,在数据库中创建用户并在数据库中授予他们权限。您不能在外部(通过API调用、terraform或其他方式(执行此操作。
是的,这对自动化来说很无聊。