MySQL 備份所需的權限


.背景:
基於網絡安全環境的惡化,以前用最高權限和root用戶直接進行備份的操作越來越不可取,每次手工備份
太麻煩,基於腳本備份又怕高權限賬號泄密。
2.解決思路:
權限最小化賦予
3.操作:
使用物理備份工具備份時可能需要的權限:
    物理備份工具:innobackupex,MySQL Enterprise Backup等等
    權限:lock tables
    作用:備份時鎖表,產生一致性備份
    權限:process
    作用:show processlist,show engine innodb status,查看線程,查看引擎狀態
    權限:reload
    作用:flush table/host/logs/tables/status/threads/refresh/reload,所有的flush操作。用於鎖表,切割日志,更新權限
    權限: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 view on *.* to bak@'192.168.%';
flush privileges;
備注:
super權限可以防止因為線程滿,備份任務無法連接數據庫而導致的備份翻車。且阻斷刷新線程也是很重要
innobackupex主要以物理文件和備份緩存文件的方式進行,所以不需要show權限與select權限
邏輯備份的基本原理就是數據全部讀取,必須select與show權限,查看表定義的權限由select權限提供
login-path的以port+host的方式保存時,會在用戶目錄下生成.login.cnf文件,拷貝到網絡互通的其他主機上,仍然可以
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM