Управление пользователями в Sharded PostgreSQL
Вы можете добавлять и удалять пользователей, а также управлять их индивидуальными настройками.
Получить список пользователей
- Перейдите в сервис Yandex Managed Service for Sharded PostgreSQL.
- Нажмите на имя нужного кластера, затем выберите вкладку Пользователи.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом User.List и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/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.cloud.yandex.net:443 \ yandex.cloud.mdb.spqr.v1.UserService.List -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить информацию о пользователе
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом User.Get и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/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.cloud.yandex.net: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
-
Выберите тип защиты от удаления.
Возможные значения:
- Как у кластера
- Включена
- Выключена
-
Выберите одну или несколько баз данных, к которым должен иметь доступ пользователь:
- В поле База данных нажмите значок
справа от выпадающего списка. - Выберите базу данных из выпадающего списка.
- Повторите два предыдущих шага, пока не будут выбраны все требуемые базы данных.
- Чтобы удалить базу, добавленную по ошибке, нажмите значок
справа от имени базы.
- В поле База данных нажмите значок
-
Нажмите кнопку Создать.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом 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— настройки подключения: -
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.cloud.yandex.net:443 \ yandex.cloud.mdb.spqr.v1.UserService.CreateГде
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
-
Настройте тип защиты от удаления.
Возможные значения:
- Как у кластера
- Включена
- Выключена
-
Настройте права пользователя на доступ к базам данных:
- Чтобы предоставить доступ к базам данных:
- В поле База данных нажмите значок
справа от выпадающего списка. - Выберите базу данных из выпадающего списка.
- Повторите два предыдущих шага, пока не будут выбраны все требуемые БД.
- В поле База данных нажмите значок
- Чтобы отозвать доступ к базе данных, нажмите значок
справа от имени БД.
- Чтобы предоставить доступ к базам данных:
-
Нажмите кнопку Сохранить.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом 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— настройки подключения: -
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.cloud.yandex.net:443 \ yandex.cloud.mdb.spqr.v1.UserService.UpdateГде:
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[]. -
password— пароль пользователя. Длина пароля — от 8 до 128 символов. -
permissions— список баз данных, к которым должен иметь доступ пользователь. Каждый элемент списка содержит параметрdatabase_name— имя БД. -
settings— настройки подключения: -
grants— список грантов, которые будут назначены пользователю.Возможные значения:
readerwriteradmintransfer
-
deletion_protection— защита пользователя от удаления:trueилиfalse.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить пароль пользователя
- Перейдите в сервис Yandex Managed Service for Sharded PostgreSQL.
- Нажмите на имя нужного кластера, затем выберите вкладку Пользователи.
- Нажмите значок
в строке нужного пользователя и выберите пункт Изменить пароль. - Введите новый пароль. Длина пароля — от 8 до 128 символов.
- Нажмите кнопку Изменить.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом 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 символов.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите 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.cloud.yandex.net:443 \ yandex.cloud.mdb.spqr.v1.UserService.UpdateГде:
-
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.cloud.yandex.net/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.cloud.yandex.net:443 \ yandex.cloud.mdb.spqr.v1.UserService.UpdateГде:
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[].В данном случае передается только один параметр.
-
deletion_protection— защита пользователя от удаления:trueилиfalse.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Удалить пользователя
Пользователь может быть защищен от удаления. Чтобы удалить такого пользователя, сперва снимите защиту.
Чтобы удалить пользователя:
- Перейдите в сервис Yandex Managed Service for Sharded PostgreSQL.
- Нажмите на имя нужного кластера, затем выберите вкладку Пользователи.
- Нажмите значок
в строке нужного пользователя и выберите пункт Удалить. - Подтвердите удаление.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом User.Delete и выполните запрос, например с помощью cURL
:curl \ --request DELETE \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/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.cloud.yandex.net:443 \ yandex.cloud.mdb.spqr.v1.UserService.Delete -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.