开发者社区> 问答> 正文

自建 mysql 数据库的用户以及权限如何批量导入polardb

已解决

自建 mysql 数据库的用户以及权限如何批量导入polardb

展开
收起
提个问题 2024-06-14 17:10:38 19 0
1 条回答
写回答
取消 提交回答
  • 开发者社区问答官方账号
    官方回答
    采纳回答
    目前PolarDB 不支持直接导入用户和权限信息,您可以手动将用户和权限数据从MySQL 数据库的系统表导出,然后将其导入到PolarDB。以下是详细步骤:

    1. 在自建MySQL中导出用户和权限数据(以mysql.user表为例):

    mysqldump -u root -p  --databases mysql --tables user > mysql_users.sql

    2. 筛选用户以及权限
    因为PolarDB MySQL 高权限账户权限限制以及保留用户限制,自建数据库中的用户名可能与PolarDB造成冲突,自建数据库中的用户权限可能会高于高权限账户,所以在导出 mysql.user 表的数据后,需要将PolarDB中的保留用户去除,并且将PolarDB 高权限账户所没有的权限置为'N'

    PolarDB 默认的保留用户为: root,aurora,replicator,mysql.infoschema,mysql.session,mysql.sys
    PolarDB 高权限账户拥有的权限为:
    SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, SERVERS_ADMIN WITH GRANT OPTION

    筛选后,在 mysql_users.sql 中仅保留nsert into mysql.user values xxxxx 语句

    3. 将数据导入至 PolarDB

    mysql -h <Polardb_Hostname> -u <Polardb_Username> -p  < mysql_users.sql

    4. 刷新权限 & 验证权限

    在PolarDB数据库中,刷新用户权限,以确保导入的用户和权限数据立即生效:
    FLUSH PRIVILEGES;

    刷新权限后,在PolarDB上正确验证用户和权限,以确保用户和权限已经成功导入并可以按预期运行。

    以上是mysql.user表(对应user 以及 user的全局权限)的操作示例。对于user 在DB级别、以及table、column等层级权限的导入,需要将mysql.db、mysql.tables_priv等表进行导入。


    2024-06-14 17:10:40
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖大会:开源 PolarDB 架构演进、关键技术与社区建设 立即下载
2023云栖大会:和客户一起玩转PolarDB新特性 立即下载
2023云栖大会:PolarDB for AI 立即下载

相关镜像