权限管理 如何将源数据库的用户与权限导出,再导入到目标数据库 步骤 1 选择一台可以访问源数据库的虚拟机。 步骤 2 执行如下命令后,输入密码并回车,将源库用户导出到临时文件“users.sql”中。 mysql h 'host' u 'user' p N $@ e "SELECT CONCAT('SHOW GRANTS FOR ''', user, '''@''', host, ''';') AS query FROM mysql.user" > /tmp/users.sql 其中的 'host' 替换为源数据库的访问IP地址,'user' 替换为源数据库的用户名。 步骤 3 执行如下命令,将源数据库中原有用户的授权信息导出到文件“grants.sql”中。 mysql h 'host' u 'user' p N $@ e " source /tmp/users.sql" > /tmp/grants.sql sed i 's/$/;/g' /tmp/grants.sql 其中的 'host' 替换为源数据库的访问IP地址,'user' 替换为源数据库的用户名。 步骤 4 命令运行成功后,打开“grants.sql”文件可以看到类似以下的结果。 Grants for root@% GRANT ALL PRIVILEGES ON . TO 'root'@'%'; Grants for testt@% GRANT SELECT, INSERT, UPDATE, DELETE ON . TO 'testt'@'%'; Grants for debiansysmaint@localhost GRANT ALL PRIVILEGES ON . TO 'debiansysmaint'@'localhost' WITH GRANT OPTION; Grants for mysql.session@localhost GRANT SUPER ON . TO 'mysql.session'@'localhost'; GRANT SELECT ON performanceschema. TO 'mysql.session'@'localhost'; GRANT SELECT ON mysql.user TO 'mysql.session'@'localhost'; Grants for mysql.sys@localhost GRANT USAGE ON . TO 'mysql.sys'@'localhost'; GRANT TRIGGER ON sys. TO 'mysql.sys'@'localhost'; GRANT SELECT ON sys.sysconfig TO 'mysql.sys'@'localhost'; Grants for root@localhost GRANT ALL PRIVILEGES ON . TO 'root'@'localhost' WITH GRANT OPTION; GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION; 步骤 5 在步骤 4 显示的结果中,可以看到源数据库中所有的用户以及对应的权限,请选择所有需要的用户,逐个添加到本云关系型数据库MySQL中。