Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Yandex AI Studio
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Video
    • Stackland
    • Yandex Cloud Router
    • Yandex Managed Service for Trino
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Yandex StoreDoc
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Managed Service for YDB
    • Managed Service for Sharded PostgreSQL
    • Managed Service for YTsaurus
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • SpeechKit
    • DataSphere
    • Vision OCR
    • Translate
    • VibeCraft
    • Yandex Cloud Detection and Response
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • GOST Gateway
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Container Registry
    • Managed Service for GitLab
    • SourceCraft
    • Managed Service for Prometheus®
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Message Queue
    • IoT Core
    • Data Streams
    • Serverless Containers
    • Cloud Notification Service
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Yandex Cloud Quota Manager
    • Cloud Apps
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Yandex Cloud Trust
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
  • Кейсы
  • Документация
  • Блог
Сделано на Gravity UI
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Managed Service for Sharded PostgreSQL
  • Начало работы
    • Все инструкции
    • Получение информации об имеющихся кластерах
    • Создание кластера
    • Изменение кластера
    • Управление хостами кластера
    • Управление шардами
    • Подключение к базе данных
    • Управление доступом к кластеру
    • Управление резервными копиями
    • Техническое обслуживание
    • Просмотр логов кластера
    • Мониторинг состояния кластера и хостов
    • Управление пользователями
    • Управление базами данных
    • Удаление кластера
    • Обновление цепочки TLS-сертификатов
  • Управление доступом
  • Инспекции и рекомендации
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений

В этой статье:

  • Получить список пользователей
  • Получить информацию о пользователе
  • Создать пользователя
  • Изменить настройки пользователя
  • Изменить пароль пользователя
  • Настроить защиту от удаления
  • Удалить пользователя
  1. Пошаговые инструкции
  2. Управление пользователями

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

Статья создана
Yandex Cloud
Открыть в Markdown
  • Получить список пользователей
  • Получить информацию о пользователе
  • Создать пользователя
  • Изменить настройки пользователя
  • Изменить пароль пользователя
  • Настроить защиту от удаления
  • Удалить пользователя

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

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

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

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

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

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

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

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

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом User.List и выполните запрос, например с помощью cURL:

    curl \
      --request GET \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --url 'https://mdb.api.cloud.yandex.net/managed-spqr/v1/clusters/<идентификатор_кластера>/users'
    

    Идентификатор кластера можно получить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом UserService.List и выполните запрос, например с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/spqr/v1/user_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>"
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.spqr.v1.UserService.List
    

    Идентификатор кластера можно получить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Получить информацию о пользователеПолучить информацию о пользователе

CLI
REST API
gRPC API

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

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

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

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

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

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

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом User.Get и выполните запрос, например с помощью cURL:

    curl \
      --request GET \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --url 'https://mdb.api.cloud.yandex.net/managed-spqr/v1/clusters/<идентификатор_кластера>/users/<имя_пользователя>'
    

    Идентификатор кластера можно получить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом UserService.Get и выполните запрос, например с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/spqr/v1/user_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>",
            "user_name": "<имя_пользователя>"
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.spqr.v1.UserService.Get
    

    Идентификатор кластера можно получить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Создать пользователяСоздать пользователя

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите в сервис Yandex Managed Service for Sharded PostgreSQL.

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

  3. Нажмите кнопку Создать пользователя.

  4. Введите имя пользователя базы данных.

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

    Имена admin, repl, monitor, postgres, mdb_admin, mdb_monitor, mdb_replication зарезервированы. Создать пользователей с этими именами нельзя.

  5. Введите пароль. Длина пароля — от 8 до 128 символов.

  6. Задайте максимальное количество подключений пользователя к БД.

  7. Задайте количество повторных попыток соединения роутера с шардами.

  8. Выберите один или несколько грантов, которые будут назначены пользователю.

    Возможные значения:

    • reader
    • writer
    • admin
    • transfer
  9. Выберите тип защиты от удаления.

    Возможные значения:

    • Как у кластера
    • Включена
    • Выключена
  10. Выберите одну или несколько баз данных, к которым должен иметь доступ пользователь:

    1. В поле База данных нажмите значок справа от выпадающего списка.
    2. Выберите базу данных из выпадающего списка.
    3. Повторите два предыдущих шага, пока не будут выбраны все требуемые базы данных.
    4. Чтобы удалить базу, добавленную по ошибке, нажмите значок справа от имени базы.
  11. Нажмите кнопку Создать.

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

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

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

yc managed-sharded-postgresql user create <имя_пользователя> \
   --cluster-name <имя_кластера> \
   --password=<пароль> \
   --permissions=<список_баз_данных> \
   --grants=<список_грантов>
   --connection-limit=<максимальное_количество_соединений> \
   --connection-retries=<максимальное_количество_повторных_попыток_соединения>

Где:

  • cluster-name — имя кластера.
  • password — пароль для пользователя. Длина пароля — от 8 до 128 символов.
  • permissions — список баз, к которым пользователь должен иметь доступ.
  • grants — список грантов, которые будут назначены пользователю. Возможные значения:
    • reader
    • writer
    • admin
    • transfer.
  • connection-limit — максимальное количество подключений пользователя к БД.
  • connection-retries — количество повторных попыток соединения роутера с шардами.

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

Имена admin, repl, monitor, postgres, mdb_admin, mdb_monitor, mdb_replication зарезервированы. Создать пользователей с этими именами нельзя.

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

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

    Инструкцию по созданию такого файла читайте в разделе Создание кластера.

    Полный список доступных для изменения полей конфигурации пользователей кластера Managed Service for Sharded PostgreSQL вы найдете в документации провайдера Terraform.

  2. Добавьте ресурс yandex_mdb_sharded_postgresql_user:

    resource "yandex_mdb_sharded_postgresql_user" "my_user" {
      cluster_id = "<идентификатор_кластера>"
      name       = "<имя_пользователя>"
      password   = "<пароль>"
      grants     = [ "<роль1>","<роль2>" ]
      settings   = {
        connection_limit = <максимальное_количество_соединений>
        connection_retries = <максимальное_количество_повторных_попыток_соединения>
      }
      permissions {
        database = "<имя_БД>"
      }
    }
    

    Где:

    • name — имя пользователя.

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

      Имена admin, repl, monitor, postgres, mdb_admin, mdb_monitor, mdb_replication зарезервированы. Создать пользователей с этими именами нельзя.

    • password — пароль пользователя. Длина пароля — от 8 до 128 символов.

    • grants — список грантов, которые будут назначены пользователю. Возможные значения:

      • reader
      • writer
      • admin
      • transfer
    • settings — настройки подключения:

      • connection_limit — максимальное количество подключений пользователя к БД.
      • connection_retries — количество повторных попыток соединения роутера с шардами.
    • permissions — база данных, к которой должен иметь доступ пользователь. Чтобы дать пользователю доступ к нескольким базам данных, укажите каждую базу данных в отдельном блоке permissions.

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

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

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

      terraform validate
      

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

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

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

      terraform plan
      

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

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

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

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

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

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом User.Create и выполните запрос, например с помощью cURL:

    curl \
      --request POST \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --url 'https://mdb.api.cloud.yandex.net/managed-spqr/v1/clusters/<идентификатор_кластера>/users' \
      --data '{
                "userSpec": {
                  "name": "<имя_пользователя>",
                  "password": "<пароль_пользователя>",
                  "permissions": [
                    {
                      "databaseName": "<имя_БД>"
                    }
                  ],
                  "settings": {
                    "connectionLimit": "<максимальное_количество_подключений_к_БД>",
                    "connectionRetries": "<количество_попыток_соединения_с_шардами>"
                  },
                  "grants": [
                    "<список_грантов>"
                  ],
                  "deletionProtection": "<защитить_пользователя_от_удаления>"
                }
              }'
    

    Где:

    • <идентификатор_кластера> — идентификатор кластера, который можно получить со списком кластеров в каталоге.

    • userSpec — настройки нового пользователя БД:

      • name — имя пользователя.

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

        Имена admin, repl, monitor, postgres, mdb_admin, mdb_monitor, mdb_replication зарезервированы. Создать пользователей с этими именами нельзя.

      • password — пароль пользователя. Длина пароля — от 8 до 128 символов.

      • permissions — список баз данных, к которым должен иметь доступ пользователь. Каждый элемент списка содержит параметр databaseName — имя БД.

      • settings — настройки подключения:

        • connLimit — максимальное количество подключений пользователя к БД.
        • connectionRetries — количество повторных попыток соединения роутера с шардами.
      • grants — список грантов, которые будут назначены пользователю. Возможные значения:

        • reader
        • writer
        • admin
        • transfer
      • deletionProtection — защита пользователя от удаления: true или false.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом UserService.Create и выполните запрос, например с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/spqr/v1/user_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>",
            "user_spec": {
              "name": "<имя_пользователя>",
              "password": "<пароль_пользователя>",
              "permissions": [
                {
                  "database_name": "<имя_БД>"
                }
              ],
              "settings": {
                "connection_limit": "<максимальное_количество_подключений_к_БД>",
                "connection_retries": "<количество_попыток_соединения_с_шардами>"
              },
              "grants": [
                "<список_грантов>"
              ],
              "deletion_protection": "<защитить_пользователя_от_удаления>"
            }
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.spqr.v1.UserService.Create
    

    Где:

    • cluster_id — идентификатор кластера, который можно получить со списком кластеров в каталоге.

    • user_spec — настройки нового пользователя БД:

      • name — имя пользователя.

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

        Имена admin, repl, monitor, postgres, mdb_admin, mdb_monitor, mdb_replication зарезервированы. Создать пользователей с этими именами нельзя.

      • password — пароль пользователя. Длина пароля — от 8 до 128 символов.

      • permissions — список баз данных, к которым должен иметь доступ пользователь. Каждый элемент списка содержит параметр database_name — имя БД.

      • settings — настройки подключения:

        • connection_limit — максимальное количество подключений пользователя к БД.
        • connection_retries — количество повторных попыток соединения роутера с шардами.
      • grants — список грантов, которые будут назначены пользователю. Возможные значения:

        • reader
        • writer
        • admin
        • transfer
      • deletion_protection — защита пользователя от удаления: true или false.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

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

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите в сервис Yandex Managed Service for Sharded PostgreSQL.

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

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

  4. Измените максимальное количество подключений пользователя к БД.

  5. Измените количество повторных попыток соединения роутера с шардами.

  6. Настройте набор грантов, которые назначены пользователю.

    Возможные значения:

    • reader
    • writer
    • admin
    • transfer
  7. Настройте тип защиты от удаления.

    Возможные значения:

    • Как у кластера
    • Включена
    • Выключена
  8. Настройте права пользователя на доступ к базам данных:

    1. Чтобы предоставить доступ к базам данных:
      1. В поле База данных нажмите значок справа от выпадающего списка.
      2. Выберите базу данных из выпадающего списка.
      3. Повторите два предыдущих шага, пока не будут выбраны все требуемые БД.
    2. Чтобы отозвать доступ к базе данных, нажмите значок справа от имени БД.
  9. Нажмите кнопку Сохранить.

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

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  • Чтобы настроить права пользователя на доступ к определенным базам данных, выполните команду, перечислив список имен баз данных с помощью параметра --permissions:

    yc managed-sharded-postgresql user update <имя_пользователя> \
         --cluster-name=<имя_кластера> \
         --permissions=<список_баз_данных>
    

    Где:

    • cluster-name — имя кластера.
    • permissions — список баз, к которым пользователь должен иметь доступ.

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

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

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

    yc managed-sharded-postgresql user update <имя_пользователя> \
      --cluster-name=<имя_кластера> \
      --grants=<новый_список_грантов>
    

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

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

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

    yc managed-sharded-postgresql user update <имя_пользователя> \
      --cluster-name=<имя_кластера> \
      --connection-limit=<максимальное_количество_соединений> \
      --connection-retries=<максимальное_количество_повторных_попыток_соединения>
    

    Где:

    • connection-limit — максимальное количество подключений пользователя к БД.
    • connection-retries — количество повторных попыток соединения роутера с шардами.

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

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

    Инструкцию по созданию такого файла читайте в разделе Создание кластера.

    Полный список доступных для изменения полей конфигурации пользователей кластера Managed Service for Sharded PostgreSQL вы найдете в документации провайдера Terraform.

  2. Измените параметры в ресурсе yandex_mdb_sharded_postgresql_user:

    resource "yandex_mdb_sharded_postgresql_user" "my_user" {
      ...
      name     = "<имя_пользователя>"
      grants   = [ "<роль1>","<роль2>" ]
      settings = {
        connection_limit = <максимальное_количество_соединений>
        connection_retries = <максимальное_количество_повторных_попыток_соединения>
      }
      permissions {
        database = "<имя_БД>"
      }
    }
    

    Где:

    • name — имя пользователя.

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

      Имена admin, repl, monitor, postgres, mdb_admin, mdb_monitor, mdb_replication зарезервированы. Создать пользователей с этими именами нельзя.

      Важно

      Изменение имени пользователя в Terraform приводит к удалению текущего пользователя и созданию нового с аналогичными настройками.

    • grants — список грантов, которые будут назначены пользователю. Возможные значения:

      • reader
      • writer
      • admin
      • transfer
    • settings — настройки подключения:

      • connection_limit — максимальное количество подключений пользователя к БД.
      • connection_retries — количество повторных попыток соединения роутера с шардами.
    • permissions — база данных, к которой должен иметь доступ пользователь. Чтобы дать пользователю доступ к нескольким базам данных, укажите каждую базу данных в отдельном блоке permissions. Чтобы запретить пользователю доступ к определенной базе данных, удалите соответствующий блок permissions.

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

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

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

      terraform validate
      

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

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

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

      terraform plan
      

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

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

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

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

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

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом User.Update и выполните запрос, например с помощью cURL:

    Важно

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

    curl \
      --request PATCH \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --url 'https://mdb.api.cloud.yandex.net/managed-spqr/v1/clusters/<идентификатор_кластера>/users/<имя_пользователя>' \
      --data '{
                "updateMask": "<перечень_изменяемых_параметров>",
                "password": "<пароль_пользователя>",
                "permissions": [
                  {
                    "databaseName": "<имя_БД>"
                  }
                ],
                "settings": {
                  "connectionLimit": "<максимальное_количество_подключений_к_БД>",
                  "connectionRetries": "<количество_попыток_соединения_с_шардами>"
                },
                "grants": [
                  "<список_грантов>"
                ],
                "deletionProtection": "<защитить_пользователя_от_удаления>"
              }'
    

    Где:

    • <идентификатор_кластера> — идентификатор кластера, который можно получить со списком кластеров в каталоге.

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

    • password — новый пароль. Длина пароля — от 8 до 128 символов.

    • permissions — список баз данных, к которым должен иметь доступ пользователь. Каждый элемент списка содержит параметр databaseName — имя БД.

    • settings — настройки подключения:

      • connLimit — максимальное количество подключений пользователя к БД.
      • connectionRetries — количество повторных попыток соединения роутера с шардами.
    • grants — список грантов, которые будут назначены пользователю.

      Возможные значения:

      • reader
      • writer
      • admin
      • transfer
    • deletionProtection — защита пользователя от удаления: true или false.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом UserService.Update и выполните запрос, например с помощью gRPCurl:

    Важно

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

    Формат перечисления настроек
    "update_mask": {
        "paths": [
            "<настройка_1>",
            "<настройка_2>",
            ...
            "<настройка_N>"
        ]
    }
    
    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/spqr/v1/user_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>",
            "user_name": "<имя_пользователя>",
            "update_mask": {
              "paths": [
                "<массив_изменяемых_параметров>"
              ]
            },
            "password": "<пароль_пользователя>",
            "permissions": [
              {
                "database_name": "<имя_БД>"
              }
            ],
            "settings": {
              "connection_limit": "<максимальное_количество_подключений_к_БД>",
              "connection_retries": "<количество_попыток_соединения_с_шардами>"
            },
            "grants": [
              "<список_грантов>"
            ],
            "deletion_protection": "<защитить_пользователя_от_удаления>"
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.spqr.v1.UserService.Update
    

    Где:

    • cluster_id — идентификатор кластера, который можно получить со списком кластеров в каталоге.

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

    • password — пароль пользователя. Длина пароля — от 8 до 128 символов.

    • permissions — список баз данных, к которым должен иметь доступ пользователь. Каждый элемент списка содержит параметр database_name — имя БД.

    • settings — настройки подключения:

      • connection_limit — максимальное количество подключений пользователя к БД.
      • connection_retries — количество повторных попыток соединения роутера с шардами.
    • grants — список грантов, которые будут назначены пользователю.

      Возможные значения:

      • reader
      • writer
      • admin
      • transfer
    • deletion_protection — защита пользователя от удаления: true или false.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

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

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите в сервис Yandex Managed Service for Sharded PostgreSQL.
  2. Нажмите на имя нужного кластера, затем выберите вкладку Пользователи.
  3. Нажмите значок в строке нужного пользователя и выберите пункт Изменить пароль.
  4. Введите новый пароль. Длина пароля — от 8 до 128 символов.
  5. Нажмите кнопку Изменить.

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

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

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

yc managed-sharded-postgresql user update <имя_пользователя> \
     --cluster-name=<имя_кластера> \
     --password=<новый_пароль>

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

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

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

    Инструкцию по созданию такого файла читайте в разделе Создание кластера.

    Полный список доступных для изменения полей конфигурации пользователей кластера Managed Service for Sharded PostgreSQL вы найдете в документации провайдера Terraform.

  2. Измените параметры в ресурсе yandex_mdb_sharded_postgresql_user:

    resource "yandex_mdb_sharded_postgresql_user" "my_user" {
      ...
      password = "<пароль>"
      ...
    }
    

    Где password — пароль пользователя. Длина пароля — от 8 до 128 символов.

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

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

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

      terraform validate
      

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

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

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

      terraform plan
      

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

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

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

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

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

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом User.Update и выполните запрос, например с помощью cURL:

    Важно

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

    curl \
      --request PATCH \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --url 'https://mdb.api.cloud.yandex.net/managed-spqr/v1/clusters/<идентификатор_кластера>/users/<имя_пользователя>' \
      --data '{
                "updateMask": "password",
                "password": "<новый_пароль>"
              }'
    

    Где:

    • <идентификатор_кластера> — идентификатор кластера, который можно получить со списком кластеров в каталоге.

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

      В данном случае передается только один параметр.

    • password — новый пароль. Длина пароля — от 8 до 128 символов.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом UserService.Update и выполните запрос, например с помощью gRPCurl:

    Важно

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

    Формат перечисления настроек
    "update_mask": {
        "paths": [
            "<настройка_1>",
            "<настройка_2>",
            ...
            "<настройка_N>"
        ]
    }
    
    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/spqr/v1/user_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>",
            "user_name": "<имя_пользователя>",
            "update_mask": {
              "paths": [
                "password"
              ]
            },
            "password": "<новый_пароль>"
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.spqr.v1.UserService.Update
    

    Где:

    • cluster_id — идентификатор кластера, который можно получить со списком кластеров в каталоге.

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

      В данном случае передается только один параметр.

    • password — новый пароль. Длина пароля — от 8 до 128 символов.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Настроить защиту от удаленияНастроить защиту от удаления

Консоль управления
REST API
gRPC API
  1. Перейдите в сервис Yandex Managed Service for Sharded PostgreSQL.
  2. Нажмите на имя нужного кластера, затем выберите вкладку Пользователи.
  3. Нажмите значок в строке нужного пользователя и выберите пункт Настроить.
  4. Измените тип защиты от удаления в поле Защита от удаления.
  5. Нажмите кнопку Сохранить.
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом User.Update и выполните запрос, например с помощью cURL:

    Важно

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

    curl \
      --request PATCH \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --url 'https://mdb.api.cloud.yandex.net/managed-spqr/v1/clusters/<идентификатор_кластера>/users/<имя_пользователя>' \
      --data '{
                "updateMask": "deletionProtection",
                "deletionProtection": "<защитить_пользователя_от_удаления>"
              }'
    

    Где:

    • <идентификатор_кластера> — идентификатор кластера, который можно получить со списком кластеров в каталоге.

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

      В данном случае передается только один параметр.

    • deletionProtection — защита пользователя от удаления: true или false.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом UserService.Update и выполните запрос, например с помощью gRPCurl:

    Важно

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

    Формат перечисления настроек
    "update_mask": {
        "paths": [
            "<настройка_1>",
            "<настройка_2>",
            ...
            "<настройка_N>"
        ]
    }
    
    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/spqr/v1/user_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>",
            "user_name": "<имя_пользователя>",
            "update_mask": {
              "paths": [
                "deletion_protection"
              ]
            },
            "deletion_protection": "<защитить_пользователя_от_удаления>"
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.spqr.v1.UserService.Update
    

    Где:

    • cluster_id — идентификатор кластера, который можно получить со списком кластеров в каталоге.

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

      В данном случае передается только один параметр.

    • deletion_protection — защита пользователя от удаления: true или false.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

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

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

Консоль управления
CLI
Terraform
REST API
gRPC API

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

  1. Перейдите в сервис Yandex Managed Service for Sharded PostgreSQL.
  2. Нажмите на имя нужного кластера, затем выберите вкладку Пользователи.
  3. Нажмите значок в строке нужного пользователя и выберите пункт Удалить.
  4. Подтвердите удаление.

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

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

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

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

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

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

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

  2. Удалите из манифеста ресурс yandex_mdb_sharded_postgresql_user с описанием пользователя, которого вы хотите удалить.

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

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

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

      terraform validate
      

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

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

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

      terraform plan
      

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

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

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

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

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

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом User.Delete и выполните запрос, например с помощью cURL:

    curl \
      --request DELETE \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --url 'https://mdb.api.cloud.yandex.net/managed-spqr/v1/clusters/<идентификатор_кластера>/users/<имя_пользователя>'
    

    Идентификатор кластера можно получить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом UserService.Delete и выполните запрос, например с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/spqr/v1/user_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>",
            "user_name": "<имя_пользователя>"
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.spqr.v1.UserService.Delete
    

    Идентификатор кластера можно получить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

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

Предыдущая
Мониторинг состояния кластера и хостов
Следующая
Управление базами данных
Сделано на Gravity UI
Проект Яндекса
© 2026 ООО «Яндекс.Облако»