Spec-Zone.ru › MySQL 9.2

25.6.21.3 Процедуры безопасности NDB Cluster и MySQL

В этом разделе рассматриваются стандартные процедуры безопасности MySQL, которые применяются к работе с NDB Cluster.

В целом, любые стандартные процедуры для безопасной работы с MySQL также применимы к работе MySQL Server в составе NDB Cluster. Прежде всего, вы всегда должны запускать MySQL Server от пользователя операционной системы 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 включает user=mysql в разделе [mysqld]. В качестве альтернативы, вы можете запустить процесс MySQL-сервера с --user=mysql в командной строке, но предпочтительнее использовать опцию my.cnf, так как вы можете забыть использовать опцию командной строки и тем самым запустить mysqld как другого пользователя непреднамеренно. Скрипт запуска mysqld_safe принудительно запускает MySQL от пользователя mysql.

Важно

Никогда не запускайте mysqld от системного пользователя root. Это означает, что потенциально любой файл в системе может быть прочитан MySQL, и, следовательно, — если MySQL будет скомпрометирован — злоумышленником.

Как упоминалось в предыдущем разделе (см. Раздел 25.6.21.2, «NDB Cluster и привилегии MySQL»), вы всегда должны установить пароль root для MySQL Server, как только он будет запущен. Вы также должны удалить учетную запись анонимного пользователя, которая устанавливается по умолчанию. Вы можете выполнить эти задачи с помощью следующих инструкций:

$> 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_tables, ndb_desc и ndb_select_all, также работают без аутентификации и могут раскрыть имена таблиц, схемы и данные. По умолчанию они устанавливаются в системах Unix-подобного типа с разрешениями wxr-xr-x (755), что означает, что их может выполнить любой пользователь, имеющий доступ к каталогу mysql/bin.

См. Раздел 25.5, «Программы NDB Cluster» для получения дополнительной информации об этих утилитах.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/mysql-cluster-security-mysql-security-procedures.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API