MySQL 到 Azure Database for MySQL 数据迁移 - MySQL 登录迁移

MySQL 登录迁移是一项新功能,允许用户(包括没有密码的用户)迁移用户帐户和权限。 借助此功能,企业现在可以将 mysql 系统数据库中的一部分数据从源迁移到目标,以用于脱机和联机迁移方案。 这种登录名迁移体验可自动执行手动任务,例如将登录名与其相应用户映射同步,以及复制服务器权限和服务器角色。

当前实现

在当前实施中,用户在配置 DMS 迁移项目时,可以选中“选择服务器对象”部分下“选择数据库”选项卡中的“迁移用户帐户和权限”复选框。

“选择数据库”的屏幕截图。

此外,还必须在“选择数据库”部分中选择任何具有相关授权的相应数据库进行迁移。

可以在“初始加载”选项卡中查看进度和总体迁移摘要。在“迁移摘要”边栏选项卡上,用户可以选择进入 mysql 系统数据库,以查看迁移服务器级对象(例如用户和授权)的结果。

登录迁移的工作原理

作为登录迁移的一部分,我们会根据源的版本,迁移“mysql”系统数据库中的表的子集。 我们为所有版本迁移的表包括:user、db、tables_priv、columns_priv 和 procs_priv。 对于 8.0 源,我们还会迁移以下表:role_edges、default_roles 和 global_grants。

限制

  • Azure Database for MySQL 灵活服务器不支持静态特权,例如“CREATE TABLESPACE”、“FILE”、“SHUTDOWN”和“SUPER”,因此登录迁移不支持该服务器。

  • 只有使用 mysql_native_password、caching_sha2_password 和 sha256_password 身份验证插件进行配置的用户才会迁移到目标服务器。 不支持依赖其他插件的用户。

  • 不会迁移用户表中的 account_locked 字段。 如果帐户在源服务器上被锁定,则迁移后不会在目标服务器上锁定。

  • 不会迁移 proxies_priv 授权表和 password_history 授权表。

  • 不会迁移用户表中的 password_expired 字段。

  • global_grants 表迁移仅迁移以下授权:xa_recover_admin、role_admin。

  • 不支持 Microsoft Entra ID 登录名迁移。