文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
手冊頁 (TGZ) - 258.2Kb
手冊頁 (Zip) - 365.3Kb
資訊 (Gzip) - 4.0Mb
資訊 (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  加密二進制日誌檔案和中繼日誌檔案

19.3.2 加密二進制日誌檔案和中繼日誌檔案

MySQL 二進制日誌檔案和中繼日誌檔案可以加密,以協助保護這些檔案以及其中可能包含的敏感資料,使其免於外部攻擊者的濫用,並防止儲存它們的作業系統使用者未經授權的檢視。用於檔案的加密演算法 AES (進階加密標準) 密碼演算法,是內建在 MySQL 伺服器中且無法設定的。

您可以在 MySQL 伺服器上設定 binlog_encryption 系統變數為 ON 來啟用此加密。OFF 是預設值。系統變數會為二進制日誌檔案和中繼日誌檔案設定加密。二進制記錄不需要在伺服器上啟用即可啟用加密,因此您可以在沒有二進制日誌的副本上加密中繼日誌檔案。若要使用加密,必須安裝和設定金鑰環元件或外掛程式,以提供 MySQL 伺服器的金鑰環服務。如需執行此操作的指示,請參閱第 8.4.4 節,「MySQL 金鑰環」。任何支援的金鑰環元件或外掛程式都可以用來儲存二進制日誌加密金鑰。

當您第一次啟動已啟用加密的伺服器時,會在初始化二進制日誌和中繼日誌之前產生新的二進制日誌加密金鑰。此金鑰用於加密每個二進制日誌檔案 (如果伺服器已啟用二進制記錄) 和中繼日誌檔案 (如果伺服器有複寫通道) 的檔案密碼,並且從檔案密碼產生的其他金鑰用於加密檔案中的資料。目前在伺服器上使用的二進制日誌加密金鑰稱為二進制日誌主金鑰。兩層加密金鑰架構表示可以根據需要輪替二進制日誌主金鑰(以新的主金鑰取代),而且只需要使用新的主金鑰重新加密每個檔案的檔案密碼,而不是整個檔案。中繼日誌檔案會為所有通道加密,包括在啟用加密後建立的新通道。二進制日誌索引檔案和中繼日誌索引檔案永遠不會加密。

如果在伺服器運作時啟用加密,屆時會產生新的二進位日誌加密金鑰。例外情況是,如果伺服器先前已啟用加密,然後停用加密,則會再次使用之前使用的二進位日誌加密金鑰。二進位日誌檔案和中繼日誌檔案會立即輪換,新檔案以及所有後續二進位日誌檔案和中繼日誌檔案的檔案密碼都會使用此二進位日誌加密金鑰進行加密。伺服器上現有的二進位日誌檔案和中繼日誌檔案不會加密,但如果不再需要,您可以清除它們。

如果您透過將 binlog_encryption 系統變數變更為 OFF 來停用加密,二進位日誌檔案和中繼日誌檔案會立即輪換,且所有後續日誌記錄都不會加密。先前加密的檔案不會自動解密,但伺服器仍然能夠讀取它們。在伺服器運作時啟用或停用加密需要 BINLOG_ENCRYPTION_ADMIN 權限。

加密和未加密的二進位日誌檔案可以使用加密日誌檔案的檔案標頭開頭的魔術數字 (0xFD62696E) 來區分,此數字與未加密日誌檔案的魔術數字 (0xFE62696E) 不同。SHOW BINARY LOGS 陳述式會顯示每個二進位日誌檔案是加密還是未加密。

當二進位日誌檔案已加密時,mysqlbinlog 無法直接讀取它們,但可以使用 --read-from-remote-server 選項從伺服器讀取它們。如果您使用 mysqlbinlog 備份加密的二進位日誌檔案,請注意,使用 mysqlbinlog 產生的檔案副本會以未加密的格式儲存。

二進位日誌加密可以與二進位日誌交易壓縮結合使用。如需二進位日誌交易壓縮的詳細資訊,請參閱第 7.4.4.5 節,「二進位日誌交易壓縮」