文件首頁
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 參考手冊  /  ...  /  NDB Cluster 和 MySQL 安全程序

25.6.21.3 NDB Cluster 和 MySQL 安全程序

在本節中,我們將討論適用於執行 NDB Cluster 的 MySQL 標準安全程序。

一般而言,任何安全執行 MySQL 的標準程序也適用於將 MySQL 伺服器作為 NDB Cluster 的一部分執行。首先,您應始終以 mysql 作業系統使用者身分執行 MySQL 伺服器;這與在標準 (非叢集) 環境中執行 MySQL 沒有任何不同。mysql 系統帳戶應明確且清楚地定義。幸運的是,這是新的 MySQL 安裝的預設行為。您可以使用如下所示的系統命令,確認 mysqld 程序以 mysql 作業系統使用者身分執行

$> ps aux | grep mysql
root     10467  0.0  0.1   3616  1380 pts/3    S    11:53   0:00 \
  /bin/sh ./mysqld_safe --ndbcluster --ndb-connectstring=localhost:1186
mysql    10512  0.2  2.5  58528 26636 pts/3    Sl   11:53   0:00 \
  /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql \
  --datadir=/usr/local/mysql/var --user=mysql --ndbcluster \
  --ndb-connectstring=localhost:1186 --pid-file=/usr/local/mysql/var/mothra.pid \
  --log-error=/usr/local/mysql/var/mothra.err
jon      10579  0.0  0.0   2736   688 pts/0    S+   11:54   0:00 grep mysql

如果 mysqld 程序以 mysql 以外的任何其他使用者身分執行,您應立即將其關閉並以 mysql 使用者身分重新啟動。如果系統中不存在此使用者,則應建立 mysql 使用者帳戶,且此使用者應屬於 mysql 使用者群組;在此情況下,您也應確保此系統上的 MySQL 資料目錄 (使用 --datadir 選項為 mysqld 設定) 由 mysql 使用者擁有,且 SQL 節點的 my.cnf 檔案在 [mysqld] 區段中包含 user=mysql。或者,您可以使用命令列中的 --user=mysql 來啟動 MySQL 伺服器程序,但最好使用 my.cnf 選項,因為您可能會忘記使用命令列選項,因此可能會意外地讓 mysqld 以其他使用者身分執行。mysqld_safe 啟動指令碼會強制 MySQL 以 mysql 使用者身分執行。

重要事項

切勿以系統根使用者身分執行 mysqld。這樣做表示 MySQL 潛在地可以讀取系統上的任何檔案,因此,如果 MySQL 遭到入侵,攻擊者也可以讀取這些檔案。

如上一節所述 (請參閱 第 25.6.21.2 節「NDB Cluster 和 MySQL 權限」),您應在 MySQL 伺服器執行後立即設定其根密碼。您也應刪除預設安裝的匿名使用者帳戶。您可以使用下列陳述式來完成這些工作

$> mysql -u root

mysql> UPDATE mysql.user
    ->     SET Password=PASSWORD('secure_password')
    ->     WHERE User='root';

mysql> DELETE FROM mysql.user
    ->     WHERE User='';

mysql> FLUSH PRIVILEGES;

執行 DELETE 陳述式時,請務必小心,不要省略 WHERE 子句,否則可能會刪除所有 MySQL 使用者。修改 mysql.user 表格後,請務必立即執行 FLUSH PRIVILEGES 陳述式,以便變更立即生效。如果沒有 FLUSH PRIVILEGES,變更將在下次伺服器重新啟動時才會生效。

注意

許多 NDB Cluster 公用程式 (例如 ndb_show_tablesndb_descndb_select_all) 也可在未經身分驗證的情況下運作,並可顯示表格名稱、綱要和資料。依預設,這些公用程式會安裝在具有 wxr-xr-x (755) 權限的 Unix 樣式系統上,這表示任何可以存取 mysql/bin 目錄的使用者都可以執行這些公用程式。

如需這些公用程式的詳細資訊,請參閱 第 25.5 節「NDB Cluster 程式」