Spec-Zone.ru › MySQL Shell 8.4

7.3 Учетные записи пользователей для InnoDB Cluster

  • Настройка учетных записей администратора InnoDB Cluster вручную

  • Внутренние учетные записи пользователей, созданные InnoDB Cluster

  • Сброс паролей учетных записей восстановления

Серверы-члены в InnoDB Cluster используют три типа учетных записей пользователей. Одна учетная запись конфигурации сервера InnoDB Cluster используется для настройки экземпляров сервера для кластера. Одну или несколько учетных записей администратора InnoDB Cluster можно создать для администраторов для управления экземплярами серверов после настройки кластера. Одну или несколько учетных записей MySQL Router можно создать для экземпляров MySQL Router для подключения к кластеру. Каждая учетная запись пользователя должна существовать на всех серверах-членах в InnoDB Cluster с одинаковым именем пользователя и тем же паролем.

Учетная запись конфигурации сервера InnoDB Cluster

Эта учетная запись используется для создания и настройки серверов-членов InnoDB Cluster. Каждый сервер-член имеет только одну учетную запись конфигурации сервера. Для каждого сервера-члена в кластере необходимо использовать одинаковое имя и пароль учетной записи пользователя. Вы можете использовать учетную запись root на серверах для этой цели, но если вы это сделаете, учетная запись root на каждом сервере-члене в кластере должна иметь тот же пароль. Это не рекомендуется по соображениям безопасности.

Предпочтительный подход заключается в создании учетной записи конфигурации сервера InnoDB Cluster с помощью команды dba.configureInstance() с опцией clusterAdmin. Для повышения безопасности укажите пароль в интерактивном режиме, в противном случае укажите его с помощью опции clusterAdminPassword. Создайте ту же учетную запись с тем же именем пользователя и паролем аналогичным способом на каждом экземпляре сервера, который будет частью InnoDB Cluster — как экземпляр, к которому вы подключаетесь для создания кластера, так и экземпляры, которые присоединятся к кластеру после этого.

Команда dba.configureInstance() предоставляет учетной записи необходимые разрешения автоматически. Вы можете настроить учетную запись вручную, если хотите, предоставив ей разрешения, перечисленные в Настройка учетных записей администратора InnoDB Cluster вручную. Учетной записи необходимы полные права чтения и записи в таблицы метаданных InnoDB Cluster, а также полные права администратора MySQL.

Учетная запись конфигурации сервера InnoDB Cluster, созданная с помощью операции dba.configureInstance(), не реплицируется на другие серверы в InnoDB Cluster. MySQL Shell отключает двоичное протоколирование для операции dba.configureInstance(). Это означает, что вы должны создать учетную запись на каждом экземпляре сервера индивидуально.

Учетные записи администраторов InnoDB Cluster

Эти учетные записи могут использоваться для администрирования InnoDB Cluster после завершения процесса настройки. Вы можете настроить более одной учетной записи. Каждая учетная запись должна существовать на каждом сервере-члене в InnoDB Cluster с одинаковым именем пользователя и паролем.

Для создания учетной записи администратора InnoDB Cluster для развертывания InnoDB ClusterSet выполните команду cluster.setupAdminAccount() после добавления всех экземпляров в этот кластер. Команда создает учетную запись с указанным вами именем пользователя и паролем со всеми необходимыми разрешениями. Транзакция для создания учетной записи с cluster.setupAdminAccount() записывается в двоичный журнал и отправляется на все другие экземпляры серверов в кластере для создания учетной записи на них.

Примечание

Если первичный InnoDB Cluster был настроен с помощью версии MySQL Shell до MySQL Shell 8.0.20, команда cluster.setupAdminAccount() могла быть использована с опцией update для обновления разрешений учетной записи конфигурации сервера InnoDB Cluster. Это специальное использование команды, которое не записывается в двоичный журнал.

Учетные записи MySQL Router

Эти учетные записи используются MySQL Router для подключения к экземплярам сервера в InnoDB Cluster. Вы можете настроить более одной учетной записи. Каждая учетная запись должна существовать на каждом сервере-члене в InnoDB Cluster с одинаковым именем пользователя и паролем. Процесс создания учетной записи MySQL Router аналогичен процессу создания учетной записи администратора InnoDB Cluster, но с использованием команды cluster.setupRouterAccount(). Инструкции по созданию или обновлению учетной записи MySQL Router см. в разделе 6.10.2 «Настройка пользователя MySQL Router».

Настройка учетных записей администратора InnoDB Cluster вручную

Если вы хотите вручную настроить пользователя администратора InnoDB Cluster, этому пользователю требуются разрешения, перечисленные здесь, все с .

Примечание

Этот список разрешений основан на текущей версии MySQL Shell. Разрешения могут меняться между выпусками. Поэтому рекомендуемый способ настройки учетных записей администраторов — использование операции dba.configureInstance() или cluster.setupAdminAccount().

Важно

Каждая учетная запись, используемая для администрирования развертывания InnoDB Cluster, InnoDB ClusterSet или InnoDB ReplicaSet, должна существовать на всех экземплярах серверов-членов в развертывании с одинаковым именем пользователя и паролем.

  • Глобальные разрешения на *.* для , , , , , , , , , , , , , и .

    Примечание

    включает в себя следующие необходимые разрешения: , , , , , .

  • Разрешения для конкретных схем для mysql_innodb_cluster_metadata.*, mysql_innodb_cluster_metadata_bkp.* и mysql_innodb_cluster_metadata_previous.* являются , , , , , , , , , , , , , , , , ; а для mysql.* являются , , .

Если необходимы только операции чтения, например, для создания пользователя для мониторинга, можно использовать учетную запись с более ограниченными разрешениями. Для получения разрешений, необходимых пользователю your_user для мониторинга InnoDB Cluster, выполните следующую команду:

dba.configureInstance('root:password@localhost:3306',{'clusterAdmin':'your_user'})

где root — это либо root-пользователь, либо пользователь с необходимыми разрешениями для создания пользователей с необходимыми разрешениями, а your_user — это пользователь администратора InnoDB Cluster, которого вы хотите создать. Команда возвращает полный список разрешений, необходимых пользователю администратора.

Для получения дополнительной информации см. .

Внутренние учетные записи пользователей, созданные InnoDB Cluster

В рамках использования Group Replication InnoDB Cluster создает внутренние учетные записи восстановления, которые позволяют осуществлять соединения между серверами в кластере. Эти пользователи являются внутренними для кластера, и имя пользователя сгенерированных пользователей следует схеме именования mysql_innodb_cluster_server_id@%, где — уникальный для экземпляра. В версиях, более ранних чем 8.0.17, имя пользователя сгенерированных пользователей соответствовало схеме именования mysql_innodb_cluster_r[10_numbers].

Имя хоста, используемое для этих внутренних пользователей, установлено в '%'. Дополнительную информацию см. в Создание списка разрешенных серверов.

Каждый внутренний пользователь имеет случайным образом сгенерированный пароль. AdminAPI позволяет изменить сгенерированный пароль для внутренних пользователей. См. Сброс паролей учетных записей восстановления. Случайно сгенерированным пользователям предоставляются следующие разрешения:

GRANT REPLICATION SLAVE ON *.* to internal_user;

Внутренние учетные записи пользователей создаются на экземпляре-источнике, а затем реплицируются на другие экземпляры в кластере. Внутренние пользователи:

  • Создаются при создании нового кластера с помощью команды dba.createCluster()

  • Создаются при добавлении нового экземпляра в кластер с помощью команды Cluster.addInstance()

  • Создаются с помощью используемого плагина аутентификации первичным членом

Дополнительную информацию о необходимых внутренних пользователях Group Replication см. .

Сброс паролей учетных записей восстановления

Вы можете использовать операцию Cluster.resetRecoveryAccountsPassword() для сброса паролей внутренних учетных записей восстановления, созданных InnoDB Cluster, например, для соблюдения политики ограничения срока действия паролей. Используйте операцию Cluster.resetRecoveryAccountsPassword() для сброса паролей всех внутренних учетных записей восстановления, используемых кластером. Операция устанавливает новый случайный пароль для внутренней учетной записи восстановления на каждом активном экземпляре. Если экземпляр недоступен, операция завершается неудачно. Вы можете использовать опцию force для игнорирования таких экземпляров, но это не рекомендуется, и безопаснее вернуть экземпляр в онлайн-состояние перед использованием этой операции. Эта операция применяется только к паролям, созданным InnoDB Cluster, и не может использоваться для обновления паролей, созданных вручную.

Примечание

Пользователь, выполняющий эту операцию, должен иметь все необходимые права администратора, в частности , для обеспечения возможности изменения паролей учетных записей восстановления независимо от политики проверки паролей. Другими словами, независимо от того, включена или нет переменная системы .

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-shell-8.4-en/innodb-cluster-user-accounts.html

Spec-Zone.ru

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