您好,登錄后才能下訂單哦!
流程介紹:
看了網上很多的 innobackupex 備份的實例,發現很多都是直接使用 “root” 用戶進行對數據進行備份;然而,這樣的備份方式是非常不安全的,mysql 數據庫的 “root" 密碼直接暴露在屏幕前;說白了這和 ”裸奔“ 有啥區別;如果數據庫的密碼落在了別人的手里,那么后果可.....(這個靠自己想吧)。這篇文章就是解決這個問題而生的!
安裝依賴包
# 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
在最后有這個提示就是備份成功
到備份好的目錄查看,數據已經備份好了
如果在企業里面對數據這樣來進行備份得話,那么 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 ,可以正常登陸,對庫/表/用戶只有查看的權限,不能進行刪除修改
用 “xtrabackup” 用戶進行備份數據庫
# innoxtrabackupex --defaults-file=/etc/my.cnf --socket=/data/mysql/mysql.sock --user=xtrabackup --password=123123 /mnt/xtra
備份成功
登陸 mysql ,對用戶權限的查看
Mysql> select user,host,Reload_priv from user;
正因為授權給 “xtrabackup” 用戶有了 “Reload”重加載的權限才能對數據庫進行備份
在數據庫上嘗試用 “back” 用戶進行備份,會發現報錯。如下圖所示
溫馨提示: 如果是沒有 “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
權限 | 權限級別 | 權限說明 |
---|---|---|
CREATE | 數據庫、表或索引 | 數據庫、表或索引權限 |
DROP | 數據庫表 | 刪除數據庫或表權限 |
GRANT OPTION | 數據庫、表或保存的程序 | 賦予權限選項 |
REFERENCES | 數據庫或表 | |
ALTER | 表 | 更改表,比如添加字段、索引等 |
DELETE | 表 | 刪除數據權限 |
INDEX | 表 | 索引權限 |
INSERT | 表 | 插入權限 |
SELECT | 表 | 查詢權限 |
UPDATE | 表 | 更新權限 |
CREATE VIEW | 視圖 | 創建視圖 |
SHOW VIEW | 視圖 | 查看視圖 |
ALTER ROUTINE | 存儲過程 | 更改存儲過程權限 |
CREATE ROUTINE | 存儲過程 | 創建存儲過程權限 |
EXECUTE | 存儲過程 | 執行存儲過程權限 |
FILE | 服務器主機上的文件訪問 | 文件訪問權限 |
CREATE TEMPORARY TABLES | 服務器管理 | 創建臨時表權限 |
LOCK TABLES | 服務器管理 | 鎖表權限 |
CREATE USER | 服務器管理 | 創建用戶權限 |
PROCESS | 服務器管理 | 查看進程權限 |
RELOAD | 服務器管理 | 執行flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload等命令的權限 |
REPLICATION CLIENT | 服務器管理 | 復制權限 |
REPLICATION SLAVE | 服務器管理 | 復制權限 |
SHOW DATABASES | 服務器管理 | 查看數據庫權限 |
SHUTDOWN | 服務器管理 | 關閉數據庫權限 |
SUPER | 服務器管理 | 執行kill線程權限 |
MYSQL的權限如何分布,就是針對表可以設置什么權限,針對列可以設置什么權限等等,這個可以從官方文檔中的一個表來說明
權限分布 | 配置的權限 |
---|---|
表權限 | 'Select', 'Insert', 'Update', 'Delete', 'Create', 'Drop', 'Grant', 'References', 'Index', 'Alter' |
列表權限 | 'Select', 'Insert', 'Update', 'References' |
過程權限 | 'Execute', 'Alter Routine', 'Grant' |
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。