文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 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 參考手冊  /  ...  /  NDB檔案系統加密設定與使用

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

檔案系統加密:若要啟用先前未加密檔案系統的加密功能,需要以下步驟

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

    [ndbd default]
    EncryptedFileSystem= 1

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

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

  3. 對所有資料節點執行滾動初始啟動(或重新啟動)(請參閱第25.6.5節,「執行NDB叢集的滾動重新啟動」):以 --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叢集管理用戶端建立備份」);啟動每個資料節點程序時都必須提供密碼;否則資料節點程序將無法啟動。資料節點日誌中會顯示以下訊息

    > 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,這表示此叢集已啟用檔案系統加密。