MySQL 用户

本页面介绍了 Cloud SQL 如何与 MySQL 用户配合工作。MySQL 用户帐号通过控制对 MySQL 数据库的访问来提供安全性。

有关 MySQL 用户的完整文档,请参阅 MySQL 文档。如需了解如何创建和管理 Cloud SQL 用户,请参阅创建和管理用户

您为什么需要 MySQL 用户帐号

MySQL 用户帐号让您能够登录并管理您的 Cloud SQL 实例。用户帐号也是应用访问您的实例所必需的信息。

超级用户限制

由于 Cloud SQL for MySQL 是一项托管式服务,因此它会限制对需要高级权限的特定系统过程和表的访问。在 Cloud SQL 中,使用者无法创建或访问具有超级用户属性的用户。

MySQL 用户帐号格式

MySQL 用户帐号有两个组成部分:用户名和主机名。用户名称标识用户,主机名称指定用户可用于连接的主机。用户名和主机名组合起来构成一个用户帐号:

'<user_name>'@'<host_name>'

您可以为主机名指定特定的 IP 地址或地址范围,或使用百分号(“%”)使主机名不受限制。请注意,如果使用 IP 地址连接到实例,那么即使用户的主机名不受限制,也必须将您的客户端 IP 地址添加为已获授权的地址

用户帐号由用户名和主机名同时定义。例如,'root'@'%' 是与 'root'@'localhost' 不同的用户帐号。

默认的 MySQL 用户

MySQL 实例有一个默认用户帐号:'root'@'%'

root 用户帐号

您可以为新实例配置 root 用户帐号,以便您可以访问该实例。为简单起见,root 用户帐号被配置为从任何主机进行连接:

'root'@'%'

root 用户拥有除 SUPERFILE 以外的所有权限。

请为 root 用户配置安全系数高的密码。由于大多数 MySQL 安装中都存在 root 用户,因此 root 用户是未经授权访问的常见目标。一旦获得对您的实例的访问权限,任何人员或程序都可以几乎无限制地访问和控制您的实例和数据。如需有关配置 root 用户帐号的帮助,请参阅配置 root 用户帐号

系统用户

系统用户有两个:

  • cloudsqlimport@localhost

    用于数据导入。

  • cloudsqlreplica@%

    用作副本的复制用户。

您不能删除或修改这些用户。

其他 MySQL 用户帐号

您也可以创建其他 MySQL 用户帐号,这是一种很好的做法,它让您可以为不同目的使用不同的 MySQL 用户帐号。您还可以创建具有受限主机名的 root 帐号,或者限制用户帐号的权限。

如需详细了解用户帐号名称,请参阅 MySQL 文档

MySQL 5.6 和 5.7 用户权限

MySQL 提供了可以为用户授予或移除的细化权限。这让您可以控制用户能在您的实例上执行的操作。

使用 Cloud SQL 创建的用户拥有与 root 用户相同的权限。您可以使用 GRANTREVOKE 语句更改他们的权限。

使用 mysql 客户端创建用户时,您必须使用 GRANT 语句明确授予该用户权限。

如需详细了解 MySQL 支持的权限,请参阅 MySQL 提供的权限

MySQL 8.0 用户权限 (cloudsqlsuperuser)

在 MySQL 8.0 for Cloud SQL 中,当您创建新用户时,用户会被自动授予 cloudsqlsuperuser 角色。cloudsqlsuperuser 角色是一个包含多个 MySQL 权限的 Cloud SQL 角色。此角色会向用户授予所有 MySQL 静态权限,但 SUPERFILE 除外。

cloudsqlsuperuser 角色仅支持以下动态权限

cloudsqlsuperuser 角色不支持 MySQL 数据库上的任何数据定义语言 (DDL) 操作。

如需查看 cloudsqlsuperuser 角色被授予的完整权限的列表,请在 mysql 客户端中执行 SHOW GRANTS 语句:

SHOW GRANTS 'cloudsqlsuperuser'

后续步骤