文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  二進制日誌加密金鑰

19.3.2.2 二進制日誌加密金鑰

用於加密日誌檔案的檔案密碼的二進制日誌加密金鑰,是使用 MySQL 伺服器的金鑰環服務,專門為每個 MySQL 伺服器執行個體產生的 256 位元金鑰(請參閱章節 8.4.4,「MySQL 金鑰環」)。金鑰環服務會處理二進制日誌加密金鑰的建立、擷取和刪除。伺服器執行個體只會建立和移除為自己產生的金鑰,但如果其他執行個體產生的金鑰儲存在金鑰環中,它就可以讀取這些金鑰,就像透過檔案複製複製的伺服器執行個體一樣。

重要事項

MySQL 伺服器執行個體的二進制日誌加密金鑰必須包含在您的備份和復原程序中,因為如果遺失解密目前和保留的二進制日誌檔案或中繼日誌檔案的檔案密碼所需的金鑰,可能會無法啟動伺服器。

金鑰環中二進制日誌加密金鑰的格式如下

MySQLReplicationKey_{UUID}_{SEQ_NO}

例如

MySQLReplicationKey_00508583-b5ce-11e8-a6a5-0010e0734796_1

{UUID} 是由 MySQL 伺服器產生的真實 UUID(server_uuid 系統變數的值)。{SEQ_NO} 是二進制日誌加密金鑰的序號,伺服器上每產生一個新金鑰,序號就會遞增 1。

伺服器上目前使用的二進制日誌加密金鑰稱為二進制日誌主金鑰。目前二進制日誌主金鑰的序號儲存在金鑰環中。二進制日誌主金鑰會用來加密每個新日誌檔案的檔案密碼,該密碼是一個隨機產生的 32 位元組檔案密碼,專屬於用於加密檔案資料的日誌檔案。檔案密碼會使用 AES-CBC (AES 密碼區塊鏈結模式),搭配 256 位元二進制日誌加密金鑰和隨機初始化向量 (IV) 進行加密,並儲存在日誌檔案的檔案標頭中。檔案資料會使用 AES-CTR (AES 計數器模式),搭配從檔案密碼產生的 256 位元金鑰和也從檔案密碼產生的 nonce 進行加密。如果知道用於加密檔案密碼的二進制日誌加密金鑰,就可以使用 OpenSSL 密碼工具組中提供的工具,在離線狀態下解密加密的檔案。

如果您使用檔案複製來複製已啟用加密的 MySQL 伺服器實例,使其二進制日誌檔案和中繼日誌檔案皆已加密,請務必同時複製金鑰環,以便複製的伺服器可以從來源伺服器讀取二進制日誌加密金鑰。當在複製的伺服器上啟用加密(無論是在啟動時或之後)時,複製的伺服器會識別出用於複製檔案的二進制日誌加密金鑰包含來源伺服器產生的 UUID。它會自動使用自己產生的 UUID 來產生新的二進制日誌加密金鑰,並使用此金鑰來加密後續二進制日誌檔案和中繼日誌檔案的檔案密碼。複製的檔案將繼續使用來源伺服器的金鑰讀取。