Управление базами данных YDB
В сервисе Managed Service for YDB вы можете создавать базы данных в двух режимах: бессерверном (Serverless) и с выделенными серверами (Dedicated).
С помощью консоли управления или Yandex Cloud CLI можно:
- Создать и изменить параметры бессерверной (Serverless) базы данных.
- Создать и изменить параметры базы данных с выделенными серверами (Dedicated).
- Посмотреть список баз данных.
- Удалить базу данных.
Создать и изменить параметры бессерверной (Serverless) базы данных
Создать Serverless базу данных
-
В консоли управления
выберите каталог, в котором будет создана БД. -
В списке сервисов выберите Managed Service for YDB.
-
Нажмите кнопку Создать базу данных.
-
Введите Имя БД. Требования к имени:
- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
В блоке Тип базы данных выберите опцию
Serverless
. -
Вам будут предложены значения по умолчанию. Они подобраны таким образом, чтобы вы могли эффективно начать работу. Вы можете изменить их сейчас или в будущем, если потребуется. Подробнее о настройках БД см. раздел Режимы работы Serverless и Dedicated.
-
Нажмите кнопку Создать базу данных.
Дождитесь, когда статус БД изменится на Running
.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды Yandex Cloud CLI для создания БД:
yc ydb database create --help
-
Выполните команду:
yc ydb database create <имя_БД> --serverless
Результат:
id: etne027gi9aa******** folder_id: b1gmit33ngp3******** created_at: "2022-12-13T09:17:06Z" name: svlbd status: PROVISIONING endpoint: grpcs://ydb.serverless.yandexcloud.net:2135/?database=/ru-central1/b1gia87mbaom********/etne027gi9aa******** serverless_database: storage_size_limit: "53687091200" location_id: ru-central1 backup_config: backup_settings: - name: daily backup_schedule: daily_backup_schedule: execute_time: hours: 17 backup_time_to_live: 604800s type: SYSTEM document_api_endpoint: https://docapi.serverless.yandexcloud.net/ru-central1/b1gia87mbaom********/etne027gi9aa******** monitoring_config: {}
Все параметры можно будет изменить в дальнейшем командой update
Yandex Cloud CLI или в консоли управления. Подробнее см. в разделе Параметры Serverless базы данных.
Любая создаваемая Serverless БД является георезервированной в трех зонах доступности.
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Опишите в конфигурационном файле Terraform параметры Serverless БД, которую необходимо создать:
resource "yandex_ydb_database_serverless" "database1" { name = "<имя_БД>" deletion_protection = "<защита_от_удаления>" serverless_database { enable_throttling_rcu_limit = <ограничение_пропускной_способности> provisioned_rcu_limit = <пропускная_способность> storage_size_limit = <объем_данных> throttling_rcu_limit = <выделенная_пропускная_способность> } }
Где:
name
— имя БД. Обязательный параметр.deletion_protection
— защита БД от удаления:true
илиfalse
. Пока опция включена, удалить БД невозможно. Включенная защита от удаления не защищает содержимое БД. Значение по умолчаниюfalse
.enable_throttling_rcu_limit
— включить ограничение пропускной способности:true
илиfalse
. Необязательный параметр. Значение по умолчаниюfalse
.provisioned_rcu_limit
— ограничение потребления Request Units в секунду. Необязательный параметр. Значение по умолчанию0
.storage_size_limit
— ограничение на объем данных, байт. Необязательный параметр. Значение по умолчанию50
ГБ.throttling_rcu_limit
— устанавленное значение показывает, какое потребление Request Units в секунду оплачивается по часам по тарифу. Ноль выключает почасовую оплату. Необязательный параметр. Значение по умолчанию0
.
-
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-
Terraform создаст все требуемые ресурсы. Проверить изменения можно в консоли управления
yc ydb database get <имя_БД>
Пример
Создание Serverless БД с защитой от удаления, ограничением пропускной способности 10 RU/c и объемом данных 50 ГБ:
resource "yandex_ydb_database_serverless" "database1" { name = "test-ydb-serverless" deletion_protection = "true" serverless_database { enable_throttling_rcu_limit = false provisioned_rcu_limit = 10 storage_size_limit = 50 throttling_rcu_limit = 0 } }
Чтобы создать Serverless базу данных, воспользуйтесь методом REST API create для ресурса Database или вызовом gRPC API DatabaseService/Create и передайте в запросе:
- Идентификатор каталога, в котором должна быть размещена БД, в параметре
folderId
. - Имя БД в параметре
name
. - Пропускную способность БД в параметре
serverlessDatabase.throttlingRcuLimit
. - Объем БД в параметре (в байтах)
serverlessDatabase.storageSizeLimit
.
Изменить параметры Serverless базы данных
- В консоли управления
выберите каталог, в котором нужно изменить настройки БД. - В списке сервисов выберите Managed Service for YDB.
- Нажмите значок
в строке нужной БД и выберите пункт Изменить. - Настройте параметры БД:
- При необходимости измените имя БД.
- В блоке Ограничения задайте пропускную способность и объем данных.
- В блоке Тарификация задайте выделенную пропускную способность.
- Нажмите кнопку Изменить базу данных.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Посмотрите описание команды Yandex Cloud CLI для изменения БД:
yc ydb database update --help
Имена параметров Serverless БД начинаются с sls-
. Другие параметры применимы только к Dedicated БД.
Примеры
-
Переименование БД dbtest в mydb:
yc ydb database update dbtest \ --new-name mydb
-
Установка ограничения на потребление 100 Request Units в секунду для Serverless БД с именем db5:
yc ydb database update db5 \ --sls-throttling-rcu 100
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте конфигурационный файл Terraform и измените фрагмент с описанием Serverless базы данных:
resource "yandex_ydb_database_serverless" "database1" { name = "<имя_БД>" deletion_protection = "<защита_от_удаления>" serverless_database { enable_throttling_rcu_limit = <ограничение_пропускной_способности> provisioned_rcu_limit = <пропускная_способность> storage_size_limit = <объем_данных> throttling_rcu_limit = <выделенная_пропускная_способность> } }
Где:
name
— имя БД. Обязательный параметр.deletion_protection
— защита БД от удаления:true
илиfalse
. Пока опция включена, удалить БД невозможно. Включенная защита от удаления не защищает содержимое БД. Значение по умолчаниюfalse
.enable_throttling_rcu_limit
— включить ограничение пропускной способности:true
илиfalse
. Необязательный параметр. Значение по умолчаниюfalse
.provisioned_rcu_limit
— ограничение потребления Request Units в секунду. Необязательный параметр. Значение по умолчанию0
.storage_size_limit
— объем данных, ГБ. Необязательный параметр. Значение по умолчанию50
.throttling_rcu_limit
— устанавленное значение показывает, какое потребление Request Units в секунду оплачивается по часам по тарифу. Ноль выключает почасовую оплату. Необязательный параметр. Значение по умолчанию0
.
-
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-
Terraform применит требуемые изменения к ресурсам. Проверить изменения можно в консоли управления
yc ydb database get <имя_БД>
Пример
Изменение выделенной пропускной способности и объема данных для БД test-ydb-serverless
:
resource "yandex_ydb_database_serverless" "database1" { name = "test-ydb-serverless" deletion_protection = "true" serverless_database { enable_throttling_rcu_limit = false provisioned_rcu_limit = 10 storage_size_limit = 80 throttling_rcu_limit = 100 } }
Чтобы изменить параметры Serverless базы данных, воспользуйтесь методом REST API update для ресурса Database или вызовом gRPC API DatabaseService/Update и укажите в запросе идентификатор требуемой БД в параметре databaseId
.
Идентификатор БД можно получить со списком БД.
Передайте в запросе:
- Идентификатор каталога, в котором должна быть размещена БД, в параметре
folderId
. - Имя БД в параметре
name
. - Пропускную способность БД в параметре
serverlessDatabase.throttlingRcuLimit
. - Объем БД в параметре (в байтах)
serverlessDatabase.storageSizeLimit
. - Идентификатор вычислительного ресурса в параметре
resourcePresetId
. - Идентификатор сети в параметре
networkId
. - Тип носителя в параметре
storageConfig.storageOptions.storageTypeId
. - Количество групп хранения в параметре
storageConfig.storageOptions.groupCount
. - Количество экземпляров БД в параметре
scalePolicy.fixedScale.size
.
Создать и изменить параметры базы данных с выделенными серверами (Dedicated)
Создать Dedicated базу данных
-
В консоли управления
выберите каталог, в котором будет создана БД. -
В списке сервисов выберите Managed Service for YDB.
-
Нажмите кнопку Создать базу данных.
-
Введите Имя базы. Требования к имени:
- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
В блоке Тип базы данных выберите опцию
Dedicated
. -
В блоке Вычислительные ресурсы выберите тип и количество вычислительных ресурсов.
Важно
Для надежной и стабильной работы базе данных необходимо более одного слота. База в production-окружении должна запускаться минимум на трех слотах.
-
В блоке Группы хранения выберите тип диска и количество групп хранения, определяющее суммарный объем хранилища.
-
В блоке Сеть настройте параметры сети:
-
(Опционально) В поле Публичные IP-адреса выберите опцию Присвоить, если вы планируете отправлять запросы к базе не только из сети Yandex Cloud, но и через интернет.
Важно
Потребление исходящего интернет-трафика для баз Managed Service for YDB с внешними IP-адресами учитывается по действующим тарифам.
Начисления за исходящий интернет-трафик, возникшие в результате использования Managed Service for YDB, будут компенсированы грантами.
-
Выберите существующую сеть из списка Облачная сеть или создайте новую:
- Нажмите кнопку Создать новую.
- В открывшемся окне укажите Имя новой сети.
- (Опционально) Выберите опцию Создать подсети. Подсети в каждой зоне доступности будут созданы автоматически.
- Нажмите кнопку Создать сеть.
-
В блоке Подсети для каждой зоны доступности выберите подсеть или создайте новую:
- Нажмите кнопку Создать новую.
- В открывшемся окне укажите Имя новой подсети.
- (Опционально) Введите Описание подсети.
- Выберите из списка Зона нужную зону.
- Задайте адрес подсети в формате CIDR
. - Нажмите кнопку Создать подсеть.
-
-
Нажмите кнопку Создать базу данных.
Дождитесь, когда статус БД изменится на Running
.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды Yandex Cloud CLI для создания БД:
yc ydb database create --help
-
Выполните команду:
yc ydb database create <имя_БД> \ --dedicated \ --network-name <название_сети> \ --storage <тип_носителя>,<количество_групп_хранения> \ --resource-preset <конфигурация_вычислительных_ресурсов> \
Где:
--dedicated
— конфигурация БД с выделенными серверами.--network-name
— имя облачной сети, в которой будет создана БД. Может быть указана сетьdefault
.--storage
— тип носителя и количество групп хранения в форматеtype=<тип_носителя>,groups=<количество_групп_хранения>
. Для типаssd
одна группа хранения вмещает 100 ГБ данных.--resource-preset
— конфигурация вычислительных ресурсов узла. Возможные значения перечислены в колонке Имя конфигурации в таблице раздела База данных на выделенных ресурсах (Dedicated).
Важные дополнительные параметры:
--public-ip
— флаг назначения публичных IP-адресов. Без этого флага вы не сможете подключиться к создаваемой БД из интернета.--fixed-size INT
— количество узлов в кластере, по умолчанию1
. Узлы выделяются в разных зонах доступности, таким образом конфигурация из трех узлов будет географически распределена в трех зонах доступности.--async
— флаг асинхронного создания. Создание Dedicated БД может занимать значительное время, измеряемое минутами. Вы можете указать данный флаг для того, чтобы управление было возвращено сразу как только команда на создание БД будет принята облаком.
Примеры
-
Создание минимальной одноузловой Dedicated БД YDB с именем dedb, доступной из интернета:
yc ydb database create dedb \ --dedicated \ --network-name default \ --storage type=ssd,groups=1 \ --resource-preset medium \ --public-ip
-
Асинхронное создание трехузловой георезервированной Dedicated БД YDB с хранилищем в 300 ГБ и вычислительным узлами по 64 ГБ RAM, с именем dedb3, доступной из интернета:
yc ydb database create dedb3 \ --dedicated --network-name default \ --storage type=ssd,groups=3 \ --resource-preset medium-m64 \ --public-ip \ --fixed-size 3 \ --async
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
В конфигурационном файле Terraform опишите параметры Dedicated БД, которую необходимо создать:
resource "yandex_ydb_database_dedicated" "database1" { name = "<имя_БД>" network_id = "<идентификатор_сети>" subnet_ids = ["<идентификатор_подсети_1>", "<идентификатор_подсети_2>", "<идентификатор_подсети_3>"] resource_preset_id = "<конфигурация_вычислительных_ресурсов>" deletion_protection = "<защита_от_удаления>" scale_policy { fixed_scale { size = <количество_экземпляров_БД> } } storage_config { group_count = <количество_групп_хранения> storage_type_id = "<тип_носителя>" } }
Где:
name
— имя БД.network_id
— идентификатор сети, к которой подключается БД.subnet_ids
— список идентификаторов подсетей. Перечисляются через запятую.resource_preset_id
— конфигурация вычислительных ресурсов узла. Возможные значения перечислены в колонке Имя конфигурации в таблице раздела База данных на выделенных ресурсах (Dedicated).deletion_protection
— защита БД от удаления:true
илиfalse
. Пока опция включена, БД удалить невозможно. Включенная защита не защищает содержимое БД. Значение по умолчанию —false
.scale_policy
— политика масштабирования, гдеsize
— количество экземпляров БД.storage_config
— конфигурация хранилища, где:group_count
— количество групп хранения.storage_type_id
— тип носителя. Для типаssd
одна группа хранения вмещает 100 ГБ данных.
-
Создайте БД:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-
Terraform создаст все требуемые ресурсы. Проверить изменения можно в консоли управления
yc ydb database list
Пример
Создание минимальной одноузловой Dedicated БД Managed Service for YDB с именем test-bd
, доступной из интернета:
resource "yandex_ydb_database_dedicated" "database2" { name = "test-ydb-dedicated" network_id = yandex_vpc_network.my-net.id subnet_ids = [yandex_vpc_subnet.my-subnet-a.id, yandex_vpc_subnet.my-subnet-b.id, yandex_vpc_subnet.my-subnet-d.id] resource_preset_id = "medium" deletion_protection = "true" scale_policy { fixed_scale { size = 1 } } storage_config { group_count = 1 storage_type_id = "ssd" } }
Чтобы создать Dedicated базу данных, воспользуйтесь методом REST API create для ресурса Database или вызовом gRPC API DatabaseService/Create и передайте в запросе:
- Идентификатор каталога, в котором должна быть размещена БД, в параметре
folderId
. - Имя БД в параметре
name
. - Разрешение на присвоение публичных IP-адресов узлам БД в параметре
dedicatedDatabase.assignPublicIps
. - Идентификатор вычислительного ресурса в параметре
resourcePresetId
. - Идентификатор сети в параметре
networkId
. - Тип носителя в параметре
storageConfig.storageOptions.storageTypeId
. - Количество групп хранения в параметре
storageConfig.storageOptions.groupCount
. - Количество экземпляров БД в параметре
scalePolicy.fixedScale.size
.
Изменить параметры Dedicated базы данных
- В консоли управления
выберите каталог, в котором нужно изменить настройки БД. - В списке сервисов выберите Managed Service for YDB.
- Нажмите значок
в строке нужной БД и выберите пункт Изменить. - Настройте параметры БД:
- При необходимости измените имя БД.
- В блоке Вычислительные ресурсы выберите тип и количество вычислительных ресурсов.
- В блоке Группы хранения выберите тип диска и количество групп хранения, определяющее суммарный объем хранилища.
- Нажмите кнопку Изменить базу данных.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Посмотрите описание команды Yandex Cloud CLI для изменения БД:
yc ydb database update --help
К Dedicated БД применимы параметры без префикса sls-
.
Пример
Изменение количества групп хранения для БД с типом дисков ssd и одной группой хранения:
yc ydb database update test-db \ --storage type=ssd,group=2
Количество групп хранения нельзя уменьшить.
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте конфигурационный файл Terraform и измените фрагмент с описанием БД:
resource "yandex_ydb_database_dedicated" "database2" { name = "my-first-ydb-dedicated" network_id = yandex_vpc_network.my-net.id subnet_ids = [yandex_vpc_subnet.my-subnet-a.id, yandex_vpc_subnet.my-subnet-b.id, yandex_vpc_subnet.my-subnet-d.id] resource_preset_id = "medium" deletion_protection = "true" scale_policy { fixed_scale { size = 2 } } storage_config { group_count = 1 storage_type_id = "ssd" } }
-
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-
Проверить изменения можно в консоли управления
yc ydb database get <имя_БД>
Чтобы изменить параметры Dedicated базы данных, воспользуйтесь методом REST API update для ресурса Database или вызовом gRPC API DatabaseService/Update и укажите в запросе идентификатор требуемой БД в параметре databaseId
.
Идентификатор БД можно получить со списком БД.
Передайте в запросе набор параметров, который используется для создания Dedicated БД, с измененными значениями.
Если вы хотите перенести БД в другую зону доступности, обратитесь к инструкции.
Посмотреть список баз данных
- В консоли управления
выберите каталог, для которого нужно получить список БД. - В списке сервисов выберите Managed Service for YDB.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Выполните команду:
yc ydb database list
Чтобы получить список баз данных в каталоге, воспользуйтесь методом REST API list для ресурса Database или вызовом gRPC API DatabaseService/List и передайте в запросе идентификатор каталога в параметре folderId
.
Назначить роль на базу данных
Вы можете предоставить пользователю, сервисному аккаунту или группе пользователей доступ к БД Managed Service for YDB. Для этого назначьте роль на БД. Чтобы выбрать нужную, узнайте, какие роли действуют в сервисе.
- В консоли управления
выберите каталог, в котором находится БД. - В списке сервисов выберите Managed Service for YDB.
- Нажмите на имя нужной БД.
- Перейдите в раздел
Права доступа и нажмите кнопку Назначить роли. - Выберите группу, пользователя или сервисный аккаунт, которым нужно предоставить доступ к БД.
- Нажмите кнопку
Добавить роль и выберите необходимые роли. - Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы назначить роль на БД:
-
Посмотрите описание команды CLI для назначения роли:
yc ydb database add-access-binding --help
-
Получите список БД вместе с их идентификаторами:
yc ydb database list
-
Получите идентификатор пользователя, сервисного аккаунта или группы пользователей, которым назначаете роль.
-
С помощью одной из команд ниже назначьте роль:
-
Пользователю:
yc ydb database add-access-binding \ --id <идентификатор_БД> \ --role <роль> \ --user-account-id <идентификатор_пользователя>
-
Федеративному пользователю:
yc ydb database add-access-binding \ --id <идентификатор_БД> \ --role <роль> \ --user-account-id <идентификатор_пользователя>
-
Сервисному аккаунту:
yc ydb database add-access-binding \ --id <идентификатор_БД> \ --role <роль> \ --service-account-id <идентификатор_сервисного_аккаунта>
-
Группе пользователей:
yc ydb database add-access-binding \ --id <идентификатор_БД> \ --role <роль> \ --subject group:<идентификатор_группы>
-
Воспользуйтесь вызовом gRPC API DatabaseService/UpdateAccessBindings и передайте в запросе:
- Значение
ADD
в параметреaccess_binding_deltas[].action
, чтобы добавить роль. - Роль в параметре
access_binding_deltas[].access_binding.role_id
. - Идентификатор субъекта, на кого назначается роль, в параметре
access_binding_deltas[].access_binding.subject.id
. - Тип субъекта, на кого назначается роль, в параметре
access_binding_deltas[].access_binding.subject.type
.
Назначить несколько ролей на базу данных
- В консоли управления
выберите каталог, в котором находится БД. - В списке сервисов выберите Managed Service for YDB.
- Нажмите на имя нужной БД.
- Перейдите в раздел
Права доступа и нажмите кнопку Назначить роли. - Выберите группу, пользователя или сервисный аккаунт, которым нужно предоставить доступ к БД.
- Нажмите кнопку
Добавить роль и выберите необходимые роли. - Нажмите кнопку Сохранить.
Внимание
Команда set-access-bindings
для назначения нескольких ролей полностью перезаписывает права доступа к ресурсу. Все текущие роли на ресурс будут удалены.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы назначить несколько ролей на базу данных:
-
Убедитесь, что на БД не назначены роли, которые вы не хотите потерять:
yc ydb database list-access-bindings \ --id <идентификатор_БД>
-
Посмотрите описание команды CLI для назначения ролей:
yc ydb database set-access-bindings --help
-
Получите список БД вместе с их идентификаторами:
yc ydb database list
-
Получите идентификатор пользователя, сервисного аккаунта или группы пользователей, которым назначаете роли.
-
С помощью одной из команд ниже назначьте роли:
-
Пользователю с аккаунтом на Яндексе:
yc ydb database set-access-bindings \ --id <идентификатор_БД> \ --access-binding role=<роль>,user-account-id=<идентификатор_пользователя>
-
Федеративному пользователю:
yc ydb database set-access-bindings \ --id <идентификатор_БД> \ --access-binding role=<роль>,subject=federatedUser:<идентификатор_пользователя>
-
Сервисному аккаунту:
yc ydb database set-access-bindings \ --id <идентификатор_БД> \ --access-binding role=<роль>,service-account-id=<идентификатор_сервисного_аккаунта>
-
Группе пользователей:
yc ydb database set-access-bindings \ --id <идентификатор_БД> \ --access-binding role=<роль>,subject=group:<идентификатор_группы>
Для каждой роли передайте отдельный флаг
--access-binding
. Пример:yc ydb database set-access-bindings \ --id <идентификатор_БД> \ --access-binding role=<роль1>,service-account-id=<идентификатор_сервисного_аккаунта> \ --access-binding role=<роль2>,service-account-id=<идентификатор_сервисного_аккаунта> \ --access-binding role=<роль3>,service-account-id=<идентификатор_сервисного_аккаунта>
-
Внимание
Метод setAccessBindings
для назначения нескольких ролей полностью перезаписывает права доступа к ресурсу. Все текущие роли на ресурс будут удалены.
Воспользуйтесь вызовом gRPC API DatabaseService/SetAccessBindings. Передайте в запросе массив из объектов, каждый из которых соответствует отдельной роли и содержит следующие данные:
- Роль в параметре
access_bindings[].role_id
. - Идентификатор субъекта, на кого назначаются роли, в параметре
access_bindings[].subject.id
. - Тип субъекта, на кого назначаются роли, в параметре
access_bindings[].subject.type
.
Удалить базу данных
- В консоли управления
выберите каталог, в котором нужно удалить БД. - В списке сервисов выберите Managed Service for YDB.
- Нажмите значок
в строке нужной БД и выберите пункт Удалить. - Подтвердите удаление.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Выполните команду:
yc ydb database delete <имя_БД>
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте файл конфигураций Terraform и удалите фрагмент с описанием БД.
Пример описания БД в конфигурации Terraform:
resource "yandex_ydb_database_dedicated" "database2" { name = "test-ydb-dedicated" network_id = yandex_vpc_network.my-net.id subnet_ids = [yandex_vpc_subnet.my-subnet-a.id, yandex_vpc_subnet.my-subnet-b.id, yandex_vpc_subnet.my-subnet-d.id] resource_preset_id = "medium" scale_policy { fixed_scale { size = 1 } } storage_config { group_count = 1 storage_type_id = "ssd" } }
-
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-
Terraform удалит все требуемые ресурсы. Проверить изменения можно в консоли управления
yc ydb database list
Чтобы удалить базу данных, воспользуйтесь методом REST API delete для ресурса Database или вызовом gRPC API DatabaseService/Delete и укажите в запросе идентификатор удаляемой БД в параметре databaseId
.
Идентификатор БД можно получить со списком БД.