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

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

当前实现

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

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

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

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

登录迁移的工作原理

作为登录迁移的一部分,我们会根据源版本迁移您系统数据库中的部分表 mysql。 我们为所有版本迁移的表包括:userdbtables_privcolumns_privprocs_priv。 对于 8.0 源,我们还迁移下列表格:role_edgesdefault_rolesglobal_grants

限制

  • Azure Database for MySQL - 灵活服务器不支持静态权限,例如 CREATE TABLESPACEFILESHUTDOWNSUPER,因此登录迁移也不支持这些权限。

  • 只有配置有mysql_native_passwordcaching_sha2_passwordsha256_password身份验证插件的用户才会迁移到目标服务器。 不支持依赖其他插件的用户。

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

  • proxies_priv grant 表和 password_history grant 表不会迁移。

  • 用户表中的password_expired字段未被迁移。

  • global_grants表的迁移仅迁移以下权限:xa_recover_adminrole_admin

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