文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  金鑰環外掛程式安裝

8.4.4.3 金鑰環外掛程式安裝

金鑰環服務消費者需要安裝金鑰環元件或外掛程式

注意

一次只能啟用一個金鑰環元件或外掛程式。不支援啟用多個金鑰環元件或外掛程式,且結果可能不如預期。

如果需要支援持久化系統變數值的安全儲存,則必須在 MySQL 伺服器執行個體上啟用金鑰環元件,而不是不支援此功能的金鑰環外掛程式。請參閱持久化敏感系統變數

MySQL 提供下列金鑰環外掛程式選擇

  • keyring_okv:適用於與 KMIP 相容的後端金鑰環儲存產品 (例如 Oracle Key Vault 和 Gemalto SafeNet KeySecure Appliance) 的 KMIP 1.1 外掛程式。在 MySQL 企業版發行版中提供。

  • keyring_aws:與 Amazon Web Services 金鑰管理服務通訊,作為金鑰產生的後端,並使用本機檔案進行金鑰儲存。適用於 MySQL Enterprise Edition 發行版本。

  • keyring_hashicorp:與 HashiCorp Vault 通訊以進行後端儲存。適用於 MySQL Enterprise Edition 發行版本。

若要讓伺服器使用,外掛程式庫檔案必須位於 MySQL 外掛程式目錄中(由 plugin_dir 系統變數命名的目錄)。如有必要,請在伺服器啟動時設定 plugin_dir 的值來設定外掛程式目錄位置。

金鑰環元件或外掛程式必須在伺服器啟動順序的早期載入,以便其他元件在各自的初始化期間可以根據需要存取它。例如,InnoDB 儲存引擎會使用金鑰環進行表空間加密,因此金鑰環元件或外掛程式必須在 InnoDB 初始化之前載入並可供使用。

每個金鑰環外掛程式的安裝方式都類似。以下說明如何安裝 keyring_okv。若要使用不同的金鑰環外掛程式,請將其名稱替換為 keyring_okv

keyring_okv 外掛程式庫檔案的基本名稱為 keyring_okv。檔案名稱字尾因平台而異(例如,Unix 和類 Unix 系統的 .so,Windows 的 .dll)。

若要載入外掛程式,請使用 --early-plugin-load 選項來命名包含它的外掛程式庫檔案。例如,在以外掛程式庫檔案字尾為 .so 的平台上,請在伺服器 my.cnf 檔案中使用這些行,並根據您的平台調整 .so 字尾。

[mysqld]
early-plugin-load=keyring_okv.so

在啟動伺服器之前,請檢查您選擇的金鑰環外掛程式的說明,以取得該外掛程式特定的組態說明。

執行任何外掛程式特定的組態後,啟動伺服器。透過檢查 Information Schema 的 PLUGINS 表格,或使用 SHOW PLUGINS 陳述式(請參閱 第 7.6.2 節,「取得伺服器外掛程式資訊」)來驗證外掛程式安裝。例如

mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
       FROM INFORMATION_SCHEMA.PLUGINS
       WHERE PLUGIN_NAME LIKE 'keyring%';
+--------------+---------------+
| PLUGIN_NAME  | PLUGIN_STATUS |
+--------------+---------------+
| keyring_okv  | ACTIVE        |
+--------------+---------------+

如果外掛程式初始化失敗,請檢查伺服器錯誤日誌以取得診斷訊息。

可以使用 --early-plugin-load 以外的其他方法來載入外掛程式,例如 --plugin-load--plugin-load-add 選項,或 INSTALL PLUGIN 陳述式。然而,使用這些方法載入的金鑰環外掛程式可能在伺服器啟動順序中太晚才可用於使用金鑰環的某些元件,例如 InnoDB

  • 使用 --plugin-load--plugin-load-add 載入外掛程式會在 InnoDB 初始化之後發生。

  • 使用 INSTALL PLUGIN 安裝的外掛程式會註冊在 mysql.plugin 系統表格中,並在後續伺服器重新啟動時自動載入。然而,由於 mysql.pluginInnoDB 表格,因此其中命名的任何外掛程式只能在 InnoDB 初始化之後的啟動期間載入。

如果當元件嘗試存取金鑰環服務時沒有可用的金鑰環元件或外掛程式,則該元件無法使用該服務。因此,元件可能無法初始化或可能以有限的功能初始化。例如,如果 InnoDB 在初始化時發現有加密的表空間,它會嘗試存取金鑰環。如果金鑰環不可用,InnoDB 只能存取未加密的表空間。若要確保 InnoDB 也可以存取加密的表空間,請使用 --early-plugin-load 來載入金鑰環外掛程式。