Управление пользователями в Sharded PostgreSQL
Вы можете добавлять и удалять пользователей, а также управлять их индивидуальными настройками.
Получить список пользователей
- Перейдите
в сервис Yandex Managed Service for Sharded PostgreSQL. - Нажмите на имя нужного кластера, затем выберите вкладку Пользователи.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы получить список пользователей кластера, выполните команду:
yc managed-sharded-postgresql user list \
--cluster-name <имя_кластера>
Имя кластера можно запросить со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом User.List и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.yandexcloud.kz/managed-spqr/v1/clusters/<идентификатор_кластера>/users'Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом 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.yandexcloud.kz:443 \ yandex.cloud.mdb.spqr.v1.UserService.ListИдентификатор кластера можно получить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить информацию о пользователе
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы получить информацию о пользователе кластера, выполните команду:
yc managed-sharded-postgresql user get <имя_пользователя> \
--cluster-name <имя_кластера>
Имя пользователя можно запросить со списком пользователей в кластере.
Имя кластера можно запросить со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом User.Get и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.yandexcloud.kz/managed-spqr/v1/clusters/<идентификатор_кластера>/users/<имя_пользователя>'Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом 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.yandexcloud.kz:443 \ yandex.cloud.mdb.spqr.v1.UserService.GetИдентификатор кластера можно получить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Создать пользователя
-
Перейдите
в сервис Yandex Managed Service for Sharded PostgreSQL. -
Нажмите на имя нужного кластера, затем выберите вкладку Пользователи.
-
Нажмите кнопку Создать пользователя.
-
Введите имя пользователя базы данных.
Имя пользователя может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы (кроме сочетания
pg_), цифры или подчеркивания. Максимальная длина имени 63 символа.Имена
admin,repl,monitor,postgres,mdb_admin,mdb_monitor,mdb_replicationзарезервированы. Создать пользователей с этими именами нельзя. -
Введите пароль. Длина пароля — от 8 до 128 символов.
-
Задайте максимальное количество подключений пользователя к БД.
-
Задайте количество повторных попыток соединения роутера с шардами.
-
Выберите один или несколько грантов, которые будут назначены пользователю.
Возможные значения:
- reader
- writer
- admin
- transfer
-
Выберите тип защиты от удаления.
Возможные значения:
- Как у кластера
- Включена
- Выключена
-
Выберите одну или несколько баз данных, к которым должен иметь доступ пользователь:
- В поле База данных нажмите значок
справа от выпадающего списка. - Выберите базу данных из выпадающего списка.
- Повторите два предыдущих шага, пока не будут выбраны все требуемые базы данных.
- Чтобы удалить базу, добавленную по ошибке, нажмите значок
справа от имени базы.
- В поле База данных нажмите значок
-
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки 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— список грантов, которые будут назначены пользователю. Возможные значения:readerwriteradmintransfer.
connection-limit— максимальное количество подключений пользователя к БД.connection-retries— количество повторных попыток соединения роутера с шардами.
Имя пользователя может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы (кроме сочетания pg_), цифры или подчеркивания. Максимальная длина имени 63 символа.
Имена admin, repl, monitor, postgres, mdb_admin, mdb_monitor, mdb_replication зарезервированы. Создать пользователей с этими именами нельзя.
Имя кластера можно запросить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Инструкцию по созданию такого файла читайте в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации пользователей кластера Managed Service for Sharded PostgreSQL вы найдете в документации провайдера Terraform.
-
Добавьте ресурс
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— список грантов, которые будут назначены пользователю. Возможные значения:readerwriteradmintransfer
-
settings— настройки подключения: -
permissions— база данных, к которой должен иметь доступ пользователь. Чтобы дать пользователю доступ к нескольким базам данных, укажите каждую базу данных в отдельном блокеpermissions.
-
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом User.Create и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.yandexcloud.kz/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— настройки подключения: -
grants— список грантов, которые будут назначены пользователю. Возможные значения:readerwriteradmintransfer
-
deletionProtection— защита пользователя от удаления:trueилиfalse.
-
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом 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.yandexcloud.kz: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— настройки подключения: -
grants— список грантов, которые будут назначены пользователю. Возможные значения:readerwriteradmintransfer
-
deletion_protection— защита пользователя от удаления:trueилиfalse.
-
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить настройки пользователя
-
Перейдите
в сервис Yandex Managed Service for Sharded PostgreSQL. -
Нажмите на имя нужного кластера, затем выберите вкладку Пользователи.
-
Нажмите значок
в строке нужного пользователя и выберите пункт Настроить. -
Измените максимальное количество подключений пользователя к БД.
-
Измените количество повторных попыток соединения роутера с шардами.
-
Настройте набор грантов, которые назначены пользователю.
Возможные значения:
- reader
- writer
- admin
- transfer
-
Настройте тип защиты от удаления.
Возможные значения:
- Как у кластера
- Включена
- Выключена
-
Настройте права пользователя на доступ к базам данных:
- Чтобы предоставить доступ к базам данных:
- В поле База данных нажмите значок
справа от выпадающего списка. - Выберите базу данных из выпадающего списка.
- Повторите два предыдущих шага, пока не будут выбраны все требуемые БД.
- В поле База данных нажмите значок
- Чтобы отозвать доступ к базе данных, нажмите значок
справа от имени БД.
- Чтобы предоставить доступ к базам данных:
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки 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— количество повторных попыток соединения роутера с шардами.
Имя кластера можно запросить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Инструкцию по созданию такого файла читайте в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации пользователей кластера Managed Service for Sharded PostgreSQL вы найдете в документации провайдера Terraform.
-
Измените параметры в ресурсе
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— список грантов, которые будут назначены пользователю. Возможные значения:readerwriteradmintransfer
-
settings— настройки подключения: -
permissions— база данных, к которой должен иметь доступ пользователь. Чтобы дать пользователю доступ к нескольким базам данных, укажите каждую базу данных в отдельном блокеpermissions. Чтобы запретить пользователю доступ к определенной базе данных, удалите соответствующий блокpermissions.
-
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом User.Update и выполните запрос, например с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.yandexcloud.kz/managed-spqr/v1/clusters/<идентификатор_кластера>/users/<имя_пользователя>' \ --data '{ "updateMask": "<перечень_изменяемых_параметров>", "password": "<пароль_пользователя>", "permissions": [ { "databaseName": "<имя_БД>" } ], "settings": { "connectionLimit": "<максимальное_количество_подключений_к_БД>", "connectionRetries": "<количество_попыток_соединения_с_шардами>" }, "grants": [ "<список_грантов>" ], "deletionProtection": "<защитить_пользователя_от_удаления>" }'Где:
-
<идентификатор_кластера>— идентификатор кластера, который можно получить со списком кластеров в каталоге. -
updateMask— перечень изменяемых параметров в одну строку через запятую. -
password— новый пароль. Длина пароля — от 8 до 128 символов. -
permissions— список баз данных, к которым должен иметь доступ пользователь. Каждый элемент списка содержит параметрdatabaseName— имя БД. -
settings— настройки подключения: -
grants— список грантов, которые будут назначены пользователю.Возможные значения:
readerwriteradmintransfer
-
deletionProtection— защита пользователя от удаления:trueилиfalse.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом 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.yandexcloud.kz:443 \ yandex.cloud.mdb.spqr.v1.UserService.UpdateГде:
-
cluster_id— идентификатор кластера, который можно получить со списком кластеров в каталоге. -
update_mask— перечень изменяемых параметров в виде массива строкpaths[]. -
password— пароль пользователя. Длина пароля — от 8 до 128 символов. -
permissions— список баз данных, к которым должен иметь доступ пользователь. Каждый элемент списка содержит параметрdatabase_name— имя БД. -
settings— настройки подключения: -
grants— список грантов, которые будут назначены пользователю.Возможные значения:
readerwriteradmintransfer
-
deletion_protection— защита пользователя от удаления:trueилиfalse.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить пароль пользователя
- Перейдите
в сервис Yandex Managed Service for Sharded PostgreSQL. - Нажмите на имя нужного кластера, затем выберите вкладку Пользователи.
- Нажмите значок
в строке нужного пользователя и выберите пункт Изменить пароль. - Введите новый пароль. Длина пароля — от 8 до 128 символов.
- Нажмите кнопку Изменить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы изменить пароль пользователя, выполните команду:
yc managed-sharded-postgresql user update <имя_пользователя> \
--cluster-name=<имя_кластера> \
--password=<новый_пароль>
Длина пароля — от 8 до 128 символов.
Имя кластера можно запросить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Инструкцию по созданию такого файла читайте в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации пользователей кластера Managed Service for Sharded PostgreSQL вы найдете в документации провайдера Terraform.
-
Измените параметры в ресурсе
yandex_mdb_sharded_postgresql_user:resource "yandex_mdb_sharded_postgresql_user" "my_user" { ... password = "<пароль>" ... }Где
password— пароль пользователя. Длина пароля — от 8 до 128 символов. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом User.Update и выполните запрос, например с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.yandexcloud.kz/managed-spqr/v1/clusters/<идентификатор_кластера>/users/<имя_пользователя>' \ --data '{ "updateMask": "password", "password": "<новый_пароль>" }'Где:
-
<идентификатор_кластера>— идентификатор кластера, который можно получить со списком кластеров в каталоге. -
updateMask— перечень изменяемых параметров в одну строку через запятую.В данном случае передается только один параметр.
-
password— новый пароль. Длина пароля — от 8 до 128 символов.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом 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.yandexcloud.kz:443 \ yandex.cloud.mdb.spqr.v1.UserService.UpdateГде:
-
cluster_id— идентификатор кластера, который можно получить со списком кластеров в каталоге. -
update_mask— перечень изменяемых параметров в виде массива строкpaths[].В данном случае передается только один параметр.
-
password— новый пароль. Длина пароля — от 8 до 128 символов.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Настроить защиту от удаления
- Перейдите
в сервис Yandex Managed Service for Sharded PostgreSQL. - Нажмите на имя нужного кластера, затем выберите вкладку Пользователи.
- Нажмите значок
в строке нужного пользователя и выберите пункт Настроить. - Измените тип защиты от удаления в поле Защита от удаления.
- Нажмите кнопку Сохранить.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом User.Update и выполните запрос, например с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.yandexcloud.kz/managed-spqr/v1/clusters/<идентификатор_кластера>/users/<имя_пользователя>' \ --data '{ "updateMask": "deletionProtection", "deletionProtection": "<защитить_пользователя_от_удаления>" }'Где:
-
<идентификатор_кластера>— идентификатор кластера, который можно получить со списком кластеров в каталоге. -
updateMask— перечень изменяемых параметров в одну строку через запятую.В данном случае передается только один параметр.
-
deletionProtection— защита пользователя от удаления:trueилиfalse.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом 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.yandexcloud.kz:443 \ yandex.cloud.mdb.spqr.v1.UserService.UpdateГде:
-
cluster_id— идентификатор кластера, который можно получить со списком кластеров в каталоге. -
update_mask— перечень изменяемых параметров в виде массива строкpaths[].В данном случае передается только один параметр.
-
deletion_protection— защита пользователя от удаления:trueилиfalse.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Удалить пользователя
Пользователь может быть защищен от удаления. Чтобы удалить такого пользователя, сперва снимите защиту.
Чтобы удалить пользователя:
- Перейдите
в сервис Yandex Managed Service for Sharded PostgreSQL. - Нажмите на имя нужного кластера, затем выберите вкладку Пользователи.
- Нажмите значок
в строке нужного пользователя и выберите пункт Удалить. - Подтвердите удаление.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы удалить пользователя, выполните команду:
yc managed-sharded-postgresql user delete <имя_пользователя> \
--cluster-name <имя_кластера>
Имя кластера можно запросить со списком кластеров в каталоге.
Чтобы удалить пользователя:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
-
Удалите из манифеста ресурс
yandex_mdb_sharded_postgresql_userс описанием пользователя, которого вы хотите удалить. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом User.Delete и выполните запрос, например с помощью cURL
:curl \ --request DELETE \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.yandexcloud.kz/managed-spqr/v1/clusters/<идентификатор_кластера>/users/<имя_пользователя>'Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом 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.yandexcloud.kz:443 \ yandex.cloud.mdb.spqr.v1.UserService.DeleteИдентификатор кластера можно получить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.