【MySQL】【安全】探討MySQL備份所需最小權限
阿新 • • 發佈:2018-01-19
刷新 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備份所需最小權限