當 MySQL 伺服器執行個體的二進制日誌加密處於啟用狀態時,加密涵蓋範圍如下
使用上述雙層加密架構,寫入二進制日誌檔案與中繼日誌檔案的靜態資料,會從開始加密的時間點起進行加密。在您開始加密時伺服器上存在的現有二進制日誌檔案與中繼日誌檔案不會加密。您可以清除這些不再需要的檔案。
複寫事件串流中的動態資料,傳送至包含 mysqlbinlog 的 MySQL 用戶端時,會解密以進行傳輸,因此應透過使用連線加密來保護傳輸中的資料(請參閱 第 8.3 節「使用加密連線」和 第 19.3.1 節「設定複寫以使用加密連線」)。
交易期間保存在二進制日誌交易與陳述式快取中的使用中資料,是以未加密格式儲存在儲存快取的記憶體緩衝區中。如果超過記憶體緩衝區中的可用空間,則會將資料寫入磁碟上的暫存檔案。當伺服器上的二進制日誌加密處於啟用狀態時,用於保存二進制日誌快取的暫存檔案會使用 AES-CTR (AES 計數器模式) 進行串流加密。由於暫存檔案是不穩定的,且與單一程序相關聯,因此它們會使用單層加密進行加密,並使用僅存在於記憶體中且永遠不會儲存在磁碟上或金鑰環中的隨機產生檔案密碼和初始化向量。在每次交易提交後,二進制日誌快取會重設:記憶體緩衝區會清除,任何用於保存二進制日誌快取的暫存檔案都會截斷,並且會隨機產生新的檔案密碼和初始化向量,以用於下一個交易。在伺服器於正常關機或意外停止後重新啟動時,也會進行此重設。
當您使用 LOAD DATA
且設定 binlog_format=STATEMENT
時(由於此陳述式被認為對基於陳述式的複製不安全,因此不建議使用),會在套用變更的副本上建立一個包含資料的臨時檔案。當伺服器上的二進制日誌加密啟用時,這些臨時檔案不會被加密。請改用基於列或混合的二進制日誌格式,這些格式不會建立臨時檔案。