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

 更新时间:2014年10月31日 10:41:18   投稿:junjie  
这篇文章主要介绍了MySQL中导出用户权限设置的脚本分享,本文通过导出mysql.user表中数据实现导出权限设置,需要的朋友可以参考下

在对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性能分析工具profile使用教程

    MySQL性能分析工具profile使用教程

    这篇文章主要介绍了MySQL性能分析工具profile使用教程,本文描述了如何使用MySQL profile,不涉及具体的样例分析,需要的朋友可以参考下
    2014-10-10
  • mysql中将null值转换为0的语句

    mysql中将null值转换为0的语句

    mysql中将null值转换为0的语句,在mysql数据库开发中,如果后期添加了字段那么这些值为空值null,我们在使用者需要将null转换为0方便后期的控制就需要下面的代码了。
    2011-02-02
  • Windows环境下MySQL 8.0 的安装、配置与卸载

    Windows环境下MySQL 8.0 的安装、配置与卸载

    这篇文章主要介绍了Windows环境下MySQL 8.0 的安装、配置与卸载步骤,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • Mysql 常用的时间日期及转换函数小结

    Mysql 常用的时间日期及转换函数小结

    本文是脚本之家小编给大家总结的一些常用的mysql时间日期以及转换函数,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-05-05
  • Mysql指定日期区间的提取方法

    Mysql指定日期区间的提取方法

    这篇文章主要介绍了Mysql指定日期区间的提取方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • mysql数据库优化总结(心得)

    mysql数据库优化总结(心得)

    本篇文章是对mysql数据库优化进行了详细的总结与介绍,需要的朋友参考下
    2013-06-06
  • MySQL中Nested-Loop Join算法小结

    MySQL中Nested-Loop Join算法小结

    数据库中JOIN操作的实现主要有三种:嵌套循环连接(Nested Loop Join),归并连接(Merge Join)和散列连接或者哈稀连接(Hash Join)。其中嵌套循环连接又视情况又有两种变形:块嵌套循环连接和索引嵌套循环连接。
    2015-12-12
  • MySQL查询结果复制到新表的方法(更新、插入)

    MySQL查询结果复制到新表的方法(更新、插入)

    下面小编就为大家带来一篇MySQL查询结果复制到新表的方法(更新、插入)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • mysql 的indexof函数用法说明

    mysql 的indexof函数用法说明

    这篇文章主要介绍了mysql 的indexof函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Mysql下载安装、部署与图形化详细操作教程

    Mysql下载安装、部署与图形化详细操作教程

    这篇文章主要为大家详细介绍了Mysql下载安装、部署与图形化详细操作教程,感兴趣的小伙伴们可以参考一下
    2016-06-06

最新评论