1. 程式人生 > >【MySQL】【安全】探討MySQL備份所需最小權限

【MySQL】【安全】探討MySQL備份所需最小權限

刷新 list root 連接數 麻煩 觸發 tab 無法連接 roc

1.背景:

基於網絡安全環境的惡化,以前用最高權限和root用戶直接進行備份的操作越來越不可取,每次手工備份
太麻煩,基於腳本備份又怕高權限賬號泄密。

2.解決思路:

權限最小化賦予

3.操作:

使用物理備份工具備份時可能需要的權限:

    物理備份工具:innobackupex,MySQL Enterprise Backup等等

    權限:lock tables

    作用:備份時鎖表,產生一致性備份

    權限:reload

    作用:show processlist,show engine innodb status,查看線程,查看引擎狀態

    權限:replication client

    作用:show master/slave status;查看事務日誌執行狀態與位置

           show binary logs;查看當前保存的事務日誌列表與文件大小

    權限:super

    作用:super權限很多很多,但是沒有CURD(增刪改查權限),這裏點到為止說一下和備份相關的

         起停復制線程,切換主庫位置,更改復制過濾條件,清理二進制日誌,

         賦予賬戶視圖與存儲過程的DEFINER權限,創建鏈接服務器(類似於MSSQL的訂閱服務器),

         關閉線程,不受最大連接線程數限制的VIP連接通道,阻斷刷新線程的命令,不受離線模式影響,           

-- 授權語句:    
grant lock tables,reload,process,replication client,super on *.* to bak@‘192.168.%‘;
flush privileges;

使用邏輯備份工具備份時可能需要的權限:

    邏輯備份工具:mysqldump,mysqlpump,mydumper等等

    權限:SELECT

    作用:查詢表中數據

    權限:SHOW VIEW

    作用:查看創建表的語句

    權限:TRIGGER

    作用:備份觸發器

    權限:EVENT

    作用:備份事件(定時任務)

    權限:lock tables

    作用:備份時鎖表,產生一致性備份

    權限:reload

    作用:show processlist,show engine innodb status,查看線程,查看引擎狀態

    權限:replication client

    作用:show master/slave status;查看事務日誌執行狀態與位置

           show binary logs;查看當前保存的事務日誌列表與文件大小

    權限:super

    作用:關閉線程,不受最大連接線程數限制的VIP連接通道,阻斷刷新線程的命令,不受離線模式影響

-- 授權語句:    
grant lock tables,reload,process,replication client,super,select,event,trigger,show event on *.* to bak@‘192.168.%‘;
flush privileges;

備註:

super權限可以防止因為線程滿,備份任務無法連接數據庫而導致的備份翻車。且阻斷刷新線程也是很重要

innobackupex主要以物理文件和備份緩存文件的方式進行,所以不需要show權限與select權限

邏輯備份的基本原理就是數據全部讀取,必須select與show權限,查看表定義的權限由select權限提供

【MySQL】【安全】探討MySQL備份所需最小權限