MySQL使用InnoDB集群时自动创建的用户帐户

2023年 9月 12日 93.4k 0

使用InnoDB Cluster时,出于各种目的会自动创建一些用户帐户。本文档描述了此类用户帐户。

InnoDB集群是基于以下组件的复合产品(暂时):

  • MySQL组复制(MySQL服务器的插件/组件)
  • MySQL外壳
  • MySQL路由器使用InnoDB Cluster时,MySQL Shell(直到8.0.16)和MySQL Router会为其管理任务创建随机用户和密码,以简化用户交互。创建的用户帐户如下所示:

SELECT user, host FROM user WHERE user LIKE 'mysql_%' ORDER BY user, host;

MySQL Shell

MySQL Shell创建以 "mysql_innodb_cluster_r" (unil 8.0.16) or mysql_innodb_cluster_ (8.0.17 and later) 开头的用户名。这些用户用于group replication recovery。MySQL Shell生成随机用户和随机密码对。用户不需要知道这些凭证就可以使用InnoDB Cluster,因为MySQL Shell在内部管理这些凭证。MySQL Shell不在本地存储凭据。因为只有在设置组复制恢复通道时才需要凭据。这些凭证通过CHANGE MASTER TO命令存储在目标MySQL服务器上。

用户名的前缀不能更改;它是在MySQL Shell中硬编码的。代码中原来写的前缀是“mysql_innodb_cluster_rplusr”,然而用户名的长度限制为32,这是mysql服务器的一个限制。

MySQL Router

mysql路由器在做引导时创建以“mysql_router”开头的用户名。这些用户用于检索元数据。MySQL路由器生成随机用户和随机密码对。密码以加密格式存储在路由器的数据目录中。查看 keyring_path 选项了解更多详细信息。加密和解密是使用主密钥完成的。默认情况下,主密钥在引导时创建在与路由器配置文件(mysqlrouter.conf)相同的目录中。为了更安全,您可以将文件放在单独的位置。有关主密钥的更多信息,请参见master_key_path选项。

这些用户不会被自动删除。当不再使用路由器实例时,您需要手动删除用户。请注意不要删除错误的用户。用户帐户是按路由器实例创建的。发现router_id 路由器配置文件(mysqlrouter.conf)中的选项。router_id包含在用户名中的字符串“mysql_router”之后。如果要删除的未使用的路由器实例的router_id为1,则MySQL服务器上的用户名以“mysql_router1_”开头,后跟随机的字母数字字符串。在上面的示例代码中,router_id=1的MySQL路由器实例的用户名是“mysql_router1_csrx95gqhf7g”。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论