文件首頁
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 參考手冊  /  ...  /  NDB 檔案系統加密設定與使用

25.6.14.1 NDB 檔案系統加密設定與使用

檔案系統加密:若要啟用先前未加密的檔案系統加密,需要執行下列步驟

  1. config.ini 檔案的 [ndbd default] 區段中,設定所需的資料節點參數,如下所示

    [ndbd default]
    EncryptedFileSystem= 1

    這些參數必須在所有資料節點上設定,如上所示。

  2. 使用 --initial--reload 來啟動管理伺服器,以使其讀取更新的組態檔。

  3. 執行所有資料節點的滾動式初始啟動 (或重新啟動) (請參閱 第 25.6.5 節 「執行 NDB Cluster 的滾動式重新啟動」):使用 --initial 啟動每個資料節點;此外,還需向每個資料節點程序提供選項 --filesystem-password--filesystem-password-from-stdin 以及密碼。當您在命令列上提供密碼時,會顯示類似於以下的警告

    > ndbmtd -c 127.0.0.1 --filesystem-password=ndbsecret
    ndbmtd: [Warning] Using a password on the command line interface can be insecure.
    2022-08-22 16:17:58 [ndbd] INFO     -- Angel connected to '127.0.0.1:1186'
    2022-08-22 16:17:58 [ndbd] INFO     -- Angel allocated nodeid: 5

    --filesystem-password 可以從檔案、ttystdin 接受密碼;--filesystem-password-from-stdin 僅從 stdin 接受密碼。後者可保護密碼不暴露在程序命令列或檔案系統中,並允許從其他安全應用程式傳遞密碼的可能性。

    您也可以將密碼放在資料節點程序可以讀取,但系統的其他使用者無法讀取的 my.cnf 檔案中。使用與先前範例相同的密碼,檔案的相關部分應如下所示

    [ndbd]
    
    filesystem-password=ndbsecret

    您也可以在啟動資料節點程序時,透過在 my.cnf 檔案中使用 --filesystem-password-from-stdin 選項,來提示使用者提供加密密碼,如下所示

    [ndbd]
    
    filesystem-password-from-stdin

    在這種情況下,當啟動資料節點程序時,會提示使用者輸入密碼,如下所示

    > ndbmtd -c 127.0.0.1
    Enter filesystem password: *********
    2022-08-22 16:36:00 [ndbd] INFO     -- Angel connected to '127.0.0.1:1186'
    2022-08-22 16:36:00 [ndbd] INFO     -- Angel allocated nodeid: 5
    >

    無論使用何種方法,加密密碼的格式都與加密備份的密碼相同 (請參閱 第 25.6.8.2 節「使用 NDB Cluster 管理用戶端建立備份」);當啟動每個資料節點程序時,必須提供密碼;否則,資料節點程序無法啟動。這會由資料節點記錄檔中的以下訊息指出

    > tail -n2 ndb_5_out.log
    2022-08-22 16:08:30 [ndbd] INFO     -- Data node configured to have encryption but password not provided
    2022-08-22 16:08:31 [ndbd] ALERT    -- Node 5: Forced node shutdown completed. Occurred during startphase 0.

    當如上述重新啟動時,每個資料節點都會清除其磁碟上的狀態,並以加密形式重建它。

檔案系統密碼輪換:若要更新資料節點使用的加密密碼,請執行資料節點的滾動式初始重新啟動,並在使用 --filesystem-password--filesystem-password-from-stdin 重新啟動時,向每個資料節點提供新密碼。

檔案系統解密:若要從加密的檔案系統中移除加密,請執行以下操作

  1. config.ini 檔案的 [ndbd default] 區段中,設定 EncryptedFileSystem = OFF

  2. 使用 --initial--reload 重新啟動管理伺服器。

  3. 執行資料節點的滾動式初始重新啟動。重新啟動節點二進位檔時,請勿使用任何與密碼相關的選項。

    重新啟動後,每個資料節點都會清除其磁碟上的狀態,並以未加密形式重建它。

若要查看是否已正確設定檔案系統加密,您可以使用針對 ndbinfo config_valuesconfig_params 資料表的查詢,類似於以下查詢

mysql> SELECT v.node_id AS Node, p.param_name AS Parameter, v.config_value AS Value
    ->    FROM ndbinfo.config_values v
    ->  JOIN ndbinfo.config_params p
    ->    ON v.config_param=p.param_number
    ->  WHERE p.param_name='EncryptedFileSystem';
+------+----------------------+-------+
| Node | Parameter            | Value |
+------+----------------------+-------+
|    5 | EncryptedFileSystem  | 1     |
|    6 | EncryptedFileSystem  | 1     |
|    7 | EncryptedFileSystem  | 1     |
|    8 | EncryptedFileSystem  | 1     |
+------+----------------------+-------+
4 rows in set (0.10 sec)

在此,所有資料節點上的 EncryptedFileSystem 等於 1,這表示此叢集已啟用檔案系統加密。