Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Managed Service for MongoDB
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Информация об имеющихся кластерах
    • Создание кластера
    • Подключение к базе данных
      • Обзор способов подключения к базе данных
      • Подключение к нешардированному кластеру
      • Подключение к шардированному кластеру
    • Остановка и запуск кластера
    • Изменение настроек кластера и базы данных
    • Переключение первичной реплики
    • Обновление версии MongoDB
    • Управление базами данных
    • Управление хостами кластера
    • Управление пользователями БД
    • Управление резервными копиями
    • Управление шардами
    • Просмотр логов кластера
    • Удаление кластера
    • Мониторинг состояния кластера и хостов
    • Диагностика производительности
    • Инструменты для анализа производительности
  • Практические руководства
    • Все сценарии
    • Шардирование коллекций
    • Миграция данных в Managed Service for MongoDB
    • Миграция коллекций из стороннего кластера MongoDB
    • Анализ производительности и оптимизация MongoDB
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Классы хостов
      • Действующие классы хостов
      • Архив
        • До 1 июня 2020 года
      • Использование устаревших классов хостов
    • Сеть в Managed Service for MongoDB
    • Редакции MongoDB
    • Квоты и лимиты
    • Хранилище в Managed Service for MongoDB
    • Резервные копии
    • Репликация
    • Шардирование
    • Пользователи и роли
    • Техническое обслуживание
    • Поддерживаемые клиенты
    • Настройки MongoDB
  • Управление доступом
  • Правила тарификации
    • Действующие правила
    • Архив
      • До 1 января 2019 года
      • С 1 января до 1 марта 2019 года
      • С 1 марта 2019 года до 1 февраля 2020 года
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • BackupService
      • ClusterService
      • DatabaseService
      • ResourcePresetService
      • UserService
      • OperationService
    • REST (англ.)
      • Overview
      • Backup
        • Overview
        • delete
        • get
        • list
      • Cluster
        • Overview
        • addHosts
        • addShard
        • backup
        • create
        • delete
        • deleteHosts
        • deleteShard
        • enableSharding
        • get
        • getShard
        • list
        • listBackups
        • listHosts
        • listLogs
        • listOperations
        • listShards
        • move
        • rescheduleMaintenance
        • resetupHosts
        • restartHosts
        • restore
        • start
        • stepdownHosts
        • stop
        • streamLogs
        • update
      • Database
        • Overview
        • create
        • delete
        • get
        • list
      • ResourcePreset
        • Overview
        • get
        • list
      • User
        • Overview
        • create
        • delete
        • get
        • grantPermission
        • list
        • revokePermission
        • update
      • Operation
        • Overview
        • get
  • История изменений
  • Вопросы и ответы
    • Общие вопросы
    • Вопросы о MongoDB
    • Все вопросы на одной странице
  1. Пошаговые инструкции
  2. Управление пользователями БД

Управление пользователями MongoDB

Статья создана
Yandex Cloud
,
улучшена
Vlad I.
  • Получить список пользователей
  • Добавить пользователя
  • Изменить пользователя
  • Удалить пользователя
  • Примеры
    • Добавить пользователя с правами только на чтение
    • Изменить права пользователя

Вы можете добавлять и удалять пользователей, а также управлять их индивидуальными настройками и правами доступа к базам данных.

Получить список пользователей

Консоль управления
CLI
API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MongoDB.
  2. Нажмите на имя нужного кластера, затем выберите вкладку  Пользователи.

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Чтобы получить список пользователей кластера, выполните команду:

yc managed-mongodb user list \
  --cluster-name <имя кластера>

Имя кластера можно запросить со списком кластеров в каталоге.

Получить список пользователей можно с помощью метода list.

Добавить пользователя

Консоль управления
CLI
Terraform
API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MongoDB.

  2. Нажмите на имя нужного кластера и выберите вкладку  Пользователи.

  3. Нажмите кнопку Добавить.

  4. Введите имя пользователя БД и пароль.

    Примечание

    Имя пользователя может содержать латинские буквы, цифры, дефис и нижнее подчеркивание, но должно начинаться с буквы, цифры или нижнего подчеркивания.

    Длина пароля от 8 до 128 символов.

  5. Настройте роли пользователя:

    1. Нажмите кнопку Добавить базу данных и выберите БД, в которой вы хотите выдать роль.
    2. Добавьте роли с помощью кнопки .

    Вы можете выдать пользователю несколько ролей в разных базах данных.

  6. Нажмите кнопку Добавить.

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Чтобы создать пользователя в кластере:

  1. Посмотрите описание команды CLI для создания пользователя:

    yc managed-mongodb user create --help
    
  2. Укажите свойства пользователя в команде создания:

    yc managed-mongodb user create <имя пользователя> \
      --cluster-name <имя кластера> \
      --password <пароль для пользователя> \
      --permission database=<имя БД>,role=<роль>,role=<другая роль>,... \
      --permission database=<имя другой БД>,role=<роль>,...
    

    Примечание

    Имя пользователя может содержать латинские буквы, цифры, дефис и нижнее подчеркивание, но должно начинаться с буквы, цифры или нижнего подчеркивания.

    Длина пароля от 8 до 128 символов.

    Имя кластера можно запросить со списком кластеров в каталоге.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание MongoDB-кластера.

  2. Добавьте к описанию кластера Managed Service for MongoDB блок user:

    resource "yandex_mdb_mongodb_cluster" "<имя кластера>" {
      ...
      user {
        name     = "<имя пользователя>"
        password = "<пароль>"
        permission {
          database_name = "<имя базы данных, к которой предоставляется доступ>"
          roles         = [ "<список ролей пользователя>" ]
        }
      }
    }
    

    Примечание

    Имя пользователя может содержать латинские буквы, цифры, дефис и нижнее подчеркивание, но должно начинаться с буквы, цифры или нижнего подчеркивания.

    Длина пароля от 8 до 128 символов.

  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for MongoDB:

  • создание, в т. ч. путем восстановления из резервной копии, — 30 минут;
  • изменение — 60 минут;
  • удаление — 30 минут.

Операции, длящиеся дольше указанного времени, прерываются.

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_mongodb_cluster" "<имя кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}

Добавить пользователей можно с помощью метода create.

Изменить пользователя

Консоль управления
CLI
Terraform
API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MongoDB.

  2. Нажмите на имя нужного кластера и выберите вкладку  Пользователи.

  3. Чтобы изменить пароль пользователя, нажмите значок в строке нужного пользователя и выберите пункт Изменить пароль.

    Примечание

    Длина пароля от 8 до 128 символов.

  4. Чтобы изменить роли пользователя:

    1. Нажмите значок в строке нужного пользователя и выберите пункт Настроить.
    2. Чтобы добавить роль, нажмите напротив нужной БД и выберите роль.
    3. Чтобы удалить роль, нажмите на значок возле названия роли.
  5. Нажмите Сохранить.

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Чтобы изменить пароль или список ролей пользователя:

  1. Посмотрите описание команды CLI для изменения пользователя:

    yc managed-mongodb user update --help
    
  2. Укажите свойства пользователя в команде изменения:

    yc managed-mongodb user update <имя пользователя> \
      --cluster-name <имя кластера> \
      --password <пароль для пользователя> \
      --permission database=<имя БД>,role=<роль>,role=<другая роль>,... \
      --permission database=<имя другой БД>,role=<роль>,...
    

    Примечание

    Длина пароля от 8 до 128 символов.

Чтобы добавить пользователю доступ к базе данных с определенным набором ролей:

  1. Посмотрите описание команды CLI для выдачи прав пользователю:

    yc managed-mongodb user grant-permission --help
    
  2. Укажите свойства пользователя в команде выдачи прав:

    yc managed-mongodb user grant-permission <имя пользователя> \
      --cluster-name <имя кластера> \
      --database <имя БД> \
      --role <набор ролей через запятую>
    

Чтобы отозвать доступ у пользователя к базе данных:

  1. Посмотрите описание команды CLI для отзыва прав пользователя:

    yc managed-mongodb user revoke-permission --help
    
  2. Укажите свойства пользователя в команде отзыва прав:

    yc managed-mongodb user revoke-permission <имя пользователя> \
      --cluster-name <имя кластера> \
      --database <имя БД>
    

    Эта команда полностью закрывает доступ пользователю к указанной базе данных.

Имя кластера можно запросить со списком кластеров в каталоге, имя базы данных — со списком баз данных в кластере, имя пользователя — со списком пользователей в кластере.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание MongoDB-кластера.

  2. Найдите в описании кластера Managed Service for MongoDB блок user для нужного пользователя.

  3. Измените значение полей password и permission:

    resource "yandex_mdb_mongodb_cluster" "<имя кластера>" {
      ...
      user {
        name     = "<имя пользователя>"
        password = "<новый пароль>"
        permission {
          database_name = "<имя базы данных>"
          roles         = [ "<новый список ролей пользователя>" ]
        }
      }
    }
    

    Примечание

    Длина пароля от 8 до 128 символов.

  4. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  5. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for MongoDB:

  • создание, в т. ч. путем восстановления из резервной копии, — 30 минут;
  • изменение — 60 минут;
  • удаление — 30 минут.

Операции, длящиеся дольше указанного времени, прерываются.

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_mongodb_cluster" "<имя кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}

Воспользуйтесь методом API update и передайте в запросе:

  • Идентификатор кластера, в котором находится пользователь, в параметре clusterId. Чтобы узнать идентификатор, получите список кластеров в каталоге.
  • Имя пользователя в параметре userName. Чтобы узнать имя, получите список пользователей в кластере.
  • Имя базы данных, для которой вы хотите изменить список ролей пользователя, в параметре permissions.databaseName. Чтобы узнать имя, получите список баз данных в кластере.
  • Массив нового списка ролей пользователя в параметре permissions.roles.
  • Список настроек пользователя, которые необходимо изменить, в параметре updateMask.

Важно

Этот метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

Удалить пользователя

Консоль управления
CLI
Terraform
API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MongoDB.
  2. Нажмите на имя нужного кластера и выберите вкладку  Пользователи.
  3. Нажмите значок в строке нужного пользователя и выберите пункт Удалить.

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Чтобы удалить пользователя, выполните команду:

yc managed-mongodb user delete <имя пользователя> \
  --cluster-name <имя кластера>

Имя кластера можно запросить со списком кластеров в каталоге.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание MongoDB-кластера.

  2. Удалите из описания кластера Managed Service for MongoDB блок user с описанием нужного пользователя.

  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for MongoDB:

  • создание, в т. ч. путем восстановления из резервной копии, — 30 минут;
  • изменение — 60 минут;
  • удаление — 30 минут.

Операции, длящиеся дольше указанного времени, прерываются.

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_mongodb_cluster" "<имя кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}

Удалить пользователя можно с помощью метода delete.

Примеры

Добавить пользователя с правами только на чтение

Чтобы добавить в существующий кластер нового пользователя user2 с доступом только на чтение к базе данных db1:

Консоль управления
CLI
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MongoDB.
  2. Нажмите на имя нужного кластера и выберите вкладку  Пользователи.
  3. Нажмите кнопку Добавить.
  4. Введите имя пользователя user2 и пароль (от 8 до 128 символов).
  5. Выберите базу данных db1 из выпадающего списка Добавить базу данных.
  6. Выберите роль read из выпадающего списка напротив базы данных db1.
  7. Нажмите кнопку Добавить.

Выполните следующую команду:

yc managed-mongodb user create user2 \
  --cluster-name <имя кластера> \
  --password <пароль пользователя> \
  --permission database=db1,role=read

Изменить права пользователя

Чтобы добавить существующему пользователю user1 кластера cluster1 доступ только на чтение к базе данных db2:

Консоль управления
CLI
Terraform
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MongoDB.
  2. Нажмите на имя кластера cluster1 и выберите вкладку  Пользователи.
  3. Нажмите значок в строке пользователя user1 и выберите пункт Настроить.
  4. Нажмите кнопку Добавить базу данных и выберите базу данных db2.
  5. Нажмите и выберите роль read из выпадающего списка напротив базы данных db2.
  6. Нажмите кнопку Сохранить.

Выполните следующую команду:

yc managed-mongodb user grant-permission user1 \
  --cluster-name cluster1 \
  --database db2 \
  --role read
  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание MongoDB-кластера.

  2. Найдите в описании кластера Managed Service for MongoDB блок user для пользователя user1.

  3. Добавьте блок permission:

    resource "yandex_mdb_mongodb_cluster" "cluster1" {
      ...
      user {
        name     = "user1"
        password = "<пароль>"
        ...
        permission {
          database_name = "db2"
          roles         = [ "read" ]
        }
      }
    }
    
    1. Проверьте корректность настроек.

      1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

      2. Выполните команду:

        terraform validate
        

        Если в файлах конфигурации есть ошибки, Terraform на них укажет.

    2. Подтвердите изменение ресурсов.

      1. Выполните команду для просмотра планируемых изменений:

        terraform plan
        

        Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

      2. Если вас устраивают планируемые изменения, внесите их:

        1. Выполните команду:

          terraform apply
          
        2. Подтвердите изменение ресурсов.

        3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

Была ли статья полезна?

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Получить список пользователей
  • Добавить пользователя
  • Изменить пользователя
  • Удалить пользователя
  • Примеры
  • Добавить пользователя с правами только на чтение
  • Изменить права пользователя