7.3 Учетные записи пользователей для 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, но с использованием команды
. Инструкции по созданию или обновлению учетной записи MySQL Router см. в разделе 6.10.2 «Настройка пользователя MySQL Router».cluster.setupRouterAccount()
Настройка учетных записей администратора 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_, где — уникальный для экземпляра. В версиях, более ранних чем 8.0.17, имя пользователя сгенерированных пользователей соответствовало схеме именования server_id@%mysql_innodb_cluster_r[.10_numbers]
Имя хоста, используемое для этих внутренних пользователей, установлено в '%'. Дополнительную информацию см. в Создание списка разрешенных серверов.
Каждый внутренний пользователь имеет случайным образом сгенерированный пароль. AdminAPI позволяет изменить сгенерированный пароль для внутренних пользователей. См. Сброс паролей учетных записей восстановления. Случайно сгенерированным пользователям предоставляются следующие разрешения:
GRANT REPLICATION SLAVE ON *.* to internal_user;Внутренние учетные записи пользователей создаются на экземпляре-источнике, а затем реплицируются на другие экземпляры в кластере. Внутренние пользователи:
Создаются при создании нового кластера с помощью команды
dba.createCluster()Создаются при добавлении нового экземпляра в кластер с помощью команды
Cluster.addInstance()Создаются с помощью используемого плагина аутентификации первичным членом
Дополнительную информацию о необходимых внутренних пользователях Group Replication см. .
Сброс паролей учетных записей восстановления
Вы можете использовать операцию для сброса паролей внутренних учетных записей восстановления, созданных InnoDB Cluster, например, для соблюдения политики ограничения срока действия паролей. Используйте операцию Cluster.resetRecoveryAccountsPassword() для сброса паролей всех внутренних учетных записей восстановления, используемых кластером. Операция устанавливает новый случайный пароль для внутренней учетной записи восстановления на каждом активном экземпляре. Если экземпляр недоступен, операция завершается неудачно. Вы можете использовать опцию Cluster.resetRecoveryAccountsPassword()force для игнорирования таких экземпляров, но это не рекомендуется, и безопаснее вернуть экземпляр в онлайн-состояние перед использованием этой операции. Эта операция применяется только к паролям, созданным InnoDB Cluster, и не может использоваться для обновления паролей, созданных вручную.
Пользователь, выполняющий эту операцию, должен иметь все необходимые права администратора, в частности , для обеспечения возможности изменения паролей учетных записей восстановления независимо от политики проверки паролей. Другими словами, независимо от того, включена или нет переменная системы .
© 2025 Oracle
Licensed under the GPLv2 License.