文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  NDB 集群和 MySQL 安全程序

25.6.21.3 NDB 集群和 MySQL 安全程序

在本节中,我们将讨论 MySQL 标准安全程序如何应用于运行 NDB 集群。

通常,任何安全运行 MySQL 的标准程序也适用于将 MySQL 服务器作为 NDB 集群的一部分运行。首先,您应该始终以 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 用户身份运行。

重要

切勿以系统 root 用户身份运行 mysqld。这样做意味着 MySQL 可能会读取系统上的任何文件,因此如果 MySQL 遭到入侵,攻击者也可能会读取这些文件。

如上一节所述(请参阅第 25.6.21.2 节“NDB 集群和 MySQL 权限”),您应该始终在 MySQL 服务器运行后立即设置 root 密码。您还应该删除默认安装的匿名用户帐户。您可以使用以下语句完成这些任务

$> 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 集群实用程序(如 ndb_show_tablesndb_descndb_select_all)也可以在没有身份验证的情况下工作,并且可以显示表名、架构和数据。默认情况下,它们安装在类 Unix 系统上,权限为 wxr-xr-x (755),这意味着可以访问 mysql/bin 目录的任何用户都可以执行它们。

有关这些实用程序的更多信息,请参阅第 25.5 节“NDB 集群程序”