• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • NDB群集和MySQL安全性过程

    在本节中,我们将讨论适用于运行NDB群集的MySQL标准安全性过程。

    通常,任何安全运行MySQL的标准过程也适用于将MySQL Server作为NDB群集的一部分运行。首先,您应该始终以mysql操作系统用户身份运行MySQL Server ;这与在标准(非集群)环境中运行MySQL没什么不同。该mysql系统帐户应该被唯一和明确的规定。幸运的是,这是新安装的MySQL的默认行为。您可以通过使用系统命令(如此处所示的命令)来验证mysqld进程是否以mysql操作系统用户身份运行:

    shell>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数据目录(使用mysqld--datadir选项设置),并且该部分中包括SQL节点的文件。或者,您可以使用以下命令启动MySQL服务器进程mysqlmy.cnfuser=mysql[mysqld]--user=mysql在命令行上,但是最好使用该my.cnf选项,因为您可能会忘记使用命令行选项,因此mysqld会无意中以另一个用户身份运行。该mysqld_safe的启动脚本强制MySQL作为运行mysql用户。

    重要

    切勿以系统root用户身份运行mysqld。这样做意味着MySQL可以潜在地读取系统上的任何文件,因此-攻击者应将MySQL破坏(应将MySQL破坏)。

    如上一节所述(请参见“ NDB群集和MySQL特权”),运行MySQL服务器后,应始终为其设置根密码。您还应该删除默认情况下安装的匿名用户帐户。您可以使用以下语句完成这些任务:

    shell> 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用户。确保在FLUSH PRIVILEGES修改mysql.user表后立即运行该语句,以使更改立即生效。如果不使用FLUSH PRIVILEGES,则更改将在下次重新启动服务器之前生效。

    注意

    许多NDB群集实用程序(例如ndb_show_tablesndb_descndb_select_all)也无需身份验证即可工作,并且可以显示表名称,模式和数据。默认情况下,这些文件以权限wxr-xr-x(755)安装在Unix风格的系统上,这意味着它们可以由可以访问该mysql/bin目录的任何用户执行。

    有关这些实用程序的更多信息,请参见“ NDB群集程序”。