innoxtrabackup 备份“root”安全问题(企业级备份方式 )

35次阅读
没有评论

共计 1991 个字符,预计需要花费 5 分钟才能阅读完成。

看了网上很多的 innobackupex 备份的实例,发现很多都是直接使用“root”用户进行对数据进行备份;然而,这样的备份方式是非常不安全的,mysql 数据库的“root 密码直接暴露在屏幕前;说白了这和”裸奔“有啥区别;如果数据库的密码落在了别人的手里,那么后果可 …..(这个靠自己想吧)。这篇文章就是解决这个问题而生的!

一、安装 innobackup

安装依赖包

# yum -y install rsync perl-DBD-MySQL numactl libaio-devel perl-Digest perl-Digest-MD5
# wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libev-4.15-3.el7.x86_64.rpm
# rpm -ivh libev-4.15-3.el7.x86_64.rpm
# wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.11/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.11-1.el7.x86_64.rpm
# rpm –ivh percona-xtrabackup-24-2.4.11-1.el7.x86_64.rpm

二、备份数据

# innoxtrabackupex --defaults-file=/etc/my.cnf --socket=/data/mysql/mysql.sock --user=root --password=123456 /mnt/xtra

在最后有这个提示就是备份成功
innoxtrabackup 备份“root”安全问题(企业级备份方式)
到备份好的目录查看,数据已经备份好了
innoxtrabackup 备份“root”安全问题(企业级备份方式)

温馨提示:

如果在企业里面对数据这样来进行备份得话,那么 root 用户的密码直接就暴露出去了,这样和“裸奔”有什么区别,这也太不安全了吧!
所以用进行对用户进行授权登陆,进行权限的控制,用授权的用户进行备份 …….

三、创建并授权备份用户

Mysql grant reload,lock tables,replication client,create tablespace,process,super on *.* to 'xtrabackup'@'localhost' identified by '123456';
Mysql flush privileges;

不使用(grant all on . to ‘root-text1’@’%’ indentified by ‘123456’; ) 创建的原因是为了控制权限的利用,避免权限的滥用
注意:尝试用“xtrabackup”用户登陆 mysql,可以正常登陆,对库/表/用户只有查看的权限,不能进行删除修改
innoxtrabackup 备份“root”安全问题(企业级备份方式)
用“xtrabackup”用户进行备份数据库

# innoxtrabackupex --defaults-file=/etc/my.cnf --socket=/data/mysql/mysql.sock --user=xtrabackup --password=123123 /mnt/xtra

备份成功
innoxtrabackup 备份“root”安全问题(企业级备份方式)
登陆 mysql,对用户权限的查看

Mysql select user,host,Reload_priv from user;

正因为授权给“xtrabackup”用户有了“Reload”重加载的权限才能对数据库进行备份
innoxtrabackup 备份“root”安全问题(企业级备份方式)
在数据库上尝试用“back”用户进行备份,会发现报错。如下图所示
innoxtrabackup 备份“root”安全问题(企业级备份方式)
温馨提示:如果是没有“Reload”权限的用户无法执行备份

总结(两步走):

对备份用户授权

Mysql grant reload,lock tables,replication client,create tablespace,process,super on *.* to 'xtrabackup'@'localhost' identified by '123456';

备份

# innoxtrabackupex --defaults-file=/etc/my.cnf --socket=/data/mysql/mysql.sock --user=xtrabackup --password=123123 /mnt/xtra

附上 mysql 用户常用权限详解

服务器管理
执行 flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload 等命令的权限

MYSQL 的权限如何分布,就是针对表可以设置什么权限,针对列可以设置什么权限等等,这个可以从官方文档中的一个表来说明


‘Select’, ‘Insert’, ‘Update’, ‘Delete’, ‘Create’, ‘Drop’, ‘Grant’, ‘References’, ‘Index’, ‘Alter’

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计1991字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)