MySQL中导出用户权限设置的脚本分享

作者:junjie 时间:2024-01-21 15:29:04 

在对MySQL数据库进行迁移的时候,有时候也需要迁移源数据库内的用户与权限。对于这个迁移我们可以从mysql.user表来获取用户的相关权限来生成相应的SQL语句,然后在目标服务器上来执行生成的SQL语句即可。本文提供了生成提取用户权限的脚本并给出演示。

1、生成用户权限的脚本


[root@HKBO ~]# more exp_grant.sh 
#!/bin/bash 
#Function export user privileges 
 
pwd=123456 
expgrants() 

  mysql -B -u'root' -p${pwd} -N $@ -e "SELECT CONCAT( 
    'SHOW GRANTS FOR ''', user, '''@''', host, ''';' 
    ) AS query FROM mysql.user" | \ 
  mysql -u'root' -p${pwd} $@ | \ 
  sed 's/\(GRANT .*\)/\1;/;s/^\(Grants for .*\)/-- \1 /;/--/{x;p;x;}' 

expgrants > ./grants.sql 

2、生成权限SQL脚本


[root@HKBO ~]# ./exp_grant.sh  
 
[root@HKBO ~]# head grants.sql 
-- Grants for root@127.0.0.1  
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY PASSWORD '*EB3EA446C759C9DA93F84FCB56430DBEF051A9DD' WITH GRANT OPTION; 
GRANT ALL PRIVILEGES ON `CNBO0815`.* TO 'root'@'127.0.0.1' WITH GRANT OPTION; 
 
-- Grants for root@172.16.10.%  
GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.10.%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'; 
 
-- Grants for CNBO@192.168.1.%  
GRANT USAGE ON *.* TO 'CNBO'@'192.168.1.%' IDENTIFIED BY PASSWORD '*ABD91BAD4A3448428563952E281015B237310EA8'; 
         ........................... 
 

3、在目标服务器上执行脚本

将生成的脚本在目标服务器上执行即可。 mysql -uname -ppwd <grants.sql

需要注意:

a、目标服务上为非空服务器,已经存在一些账户及权限应考虑会覆盖的问题。
b、如果仅仅需要迁移非root用户,可以在原脚本中添加过滤条件,即 where user<>'root' 。

标签:MySQL,导出用户权限
0
投稿

猜你喜欢

  • Python实现二叉树的最小深度的两种方法

    2022-05-24 03:30:17
  • Ubuntu+python将nii图像保存成png格式

    2022-05-11 10:04:51
  • vue 使用鼠标滚动加载数据的例子

    2024-05-28 15:42:21
  • 用Python编写分析Python程序性能的工具的教程

    2022-02-13 01:57:03
  • python转换字符串为摩尔斯电码的方法

    2022-01-01 10:17:44
  • Python用模块pytz来转换时区

    2021-05-27 20:09:32
  • 服务端XMLHTTP(ServerXMLHTTP in ASP)进阶应用-User Agent伪装

    2008-11-11 12:29:00
  • php笔记之:初探PHPcms模块开发介绍

    2024-05-11 09:54:26
  • DataGrip 2020.1 安装与激活方法

    2022-04-02 19:46:16
  • Sql Server2016 正式版安装程序图解教程

    2024-01-21 18:48:53
  • Js sort排序使用方法

    2023-10-19 10:20:55
  • 教你用python提取txt文件中的特定信息并写入Excel

    2021-02-11 00:41:41
  • Python asyncio的一个坑

    2022-04-06 20:58:28
  • 使用Django框架创建项目

    2023-02-14 10:30:25
  • ASP.NET MVC4入门教程(四):添加一个模型

    2024-05-09 09:02:58
  • python实现图书馆研习室自动预约功能

    2022-03-22 02:04:44
  • Android应用开发中Action bar编写的入门教程

    2022-01-03 02:25:18
  • 详解Tensorflow数据读取有三种方式(next_batch)

    2023-08-10 07:30:42
  • 基于ASP的站内多值搜索

    2010-05-11 20:03:00
  • 用Dreamweaver设计实现网页过渡转换功能

    2008-09-04 10:09:00
  • asp之家 网络编程 m.aspxhome.com