Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for Greenplum®
  • Начало работы
    • Все инструкции
    • Подключение к базе данных
    • Подключение к внешнему файловому серверу (gpfdist)
    • Вспомогательные утилиты
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

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

  • Настройка групп безопасности
  • Получение SSL-сертификата
  • FQDN хоста Greenplum®
  • Получить FQDN хоста
  • Особый FQDN первичного мастера
  • Подключение из графических IDE
  • Подключение из pgAdmin 4
  • Подготовка к подключению из Docker-контейнера
  • Примеры строк подключения
  • Bash
  • C# EF Core
  • Go
  • Java
  • Node.js
  • ODBC
  • PHP
  • PowerShell
  • Python
  • Ruby
  1. Пошаговые инструкции
  2. Подключение к базе данных

Подключение к базе данных

Статья создана
Yandex Cloud
Улучшена
Dmitry A.
Обновлена 7 мая 2025 г.
  • Настройка групп безопасности
  • Получение SSL-сертификата
  • FQDN хоста Greenplum®
    • Получить FQDN хоста
    • Особый FQDN первичного мастера
  • Подключение из графических IDE
  • Подключение из pgAdmin 4
  • Подготовка к подключению из Docker-контейнера
  • Примеры строк подключения
    • Bash
    • C# EF Core
    • Go
    • Java
    • Node.js
    • ODBC
    • PHP
    • PowerShell
    • Python
    • Ruby

Благодаря тому, что СУБД Greenplum® основана на PostgreSQL, для подключения к обеим СУБД используются одни и те же инструменты.

Подключение к кластеру Managed Service for Greenplum® производится только через первичный хост-мастер. Чтобы определить роли хостов, получите список хостов в кластере.

К кластеру можно подключиться:

  • С виртуальных машин Yandex Cloud, расположенных в той же облачной сети.

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

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

Без SSL-соединения трафик внутри облачной сети не шифруется.

Настройка групп безопасностиНастройка групп безопасности

Кластеру Managed Service for Greenplum® может быть назначена одна или несколько групп безопасности. Для подключения к кластеру необходимо, чтобы группы безопасности содержали правила, разрешающие входящий трафик на порт 6432 с определенных IP-адресов или из других групп безопасности.

Примечание

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

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

Через интернет
С ВМ в Yandex Cloud
  1. Для входящего трафика:

    • Диапазон портов — 6432.
    • Протокол — TCP.
    • Источник — CIDR.
    • CIDR блоки — диапазон адресов, с которых производится подключение.
  2. Для исходящего трафика:

    • Диапазон портов — 0-65535.
    • Протокол — Любой (Any).
    • Источник — CIDR.
    • CIDR блоки — 0.0.0.0/0.

    Это правило позволит Managed Service for Greenplum® работать с внешними источниками данных, например PXF или GPFDIST.

  1. Добавьте в группу безопасности кластера следующие правила:

    1. Для входящего трафика:

      • Диапазон портов — 6432.
      • Протокол — TCP.
      • Источник — Группа безопасности.
      • Группа безопасности — если кластер и ВМ находятся в одной и той же группе безопасности, выберите значение Текущая (Self). В противном случае укажите группу безопасности ВМ.
    2. Для исходящего трафика:

      • Диапазон портов — 0-65535.
      • Протокол — Любой (Any).
      • Источник — CIDR.
      • CIDR блоки — 0.0.0.0/0.

      Это правило позволит Managed Service for Greenplum® работать с внешними источниками данных, например PXF или GPFDIST.

  2. Настройте группу безопасности, в которой находится ВМ, так, чтобы можно было подключаться к ВМ и был разрешен трафик между ВМ и хостами кластера:

    • Для входящего трафика:

      • Диапазон портов — 22.
      • Протокол — TCP.
      • Источник — CIDR.
      • CIDR блоки — диапазон адресов, с которых производится подключение.

      Это правило позволяет подключаться к ВМ по протоколу SSH.

    • Для исходящего трафика:

      • Диапазон портов — 0-65535.
      • Протокол — Любой (Any).
      • Назначение — CIDR.
      • CIDR блоки — 0.0.0.0/0.

      Это правило разрешает любой исходящий трафик, что позволяет не только подключаться к кластеру, но и устанавливать на ВМ необходимые для этого сертификаты и утилиты.

Получение SSL-сертификатаПолучение SSL-сертификата

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

Linux (Bash)/macOS (Zsh)
Windows (PowerShell)
mkdir -p ~/.postgresql && \
wget "https://storage.yandexcloud.net/cloud-certs/CA.pem" \
     --output-document ~/.postgresql/root.crt && \
chmod 0655 ~/.postgresql/root.crt

Сертификат будет сохранен в файле ~/.postgresql/root.crt.

mkdir $HOME\.postgresql; curl.exe -o $HOME\.postgresql\root.crt https://storage.yandexcloud.net/cloud-certs/CA.pem

Сертификат будет сохранен в файле $HOME\.postgresql\root.crt.

Корпоративные политики и антивирус могут блокировать скачивание сертификата. Подробнее см. в разделе Вопросы и ответы.

Для использования графических IDE сохраните сертификат в локальную папку и укажите путь к нему в настройках подключения.

FQDN хоста Greenplum®FQDN хоста Greenplum®

Для подключения к хосту-мастеру потребуется его FQDN — доменное имя. Вы можете использовать FQDN конкретного хоста в кластере или особый FQDN, всегда указывающий на первичный хост-мастер.

Пример FQDN хоста:

rc1a-goh2a9tr********.mdb.yandexcloud.net

Получить FQDN хостаПолучить FQDN хоста

FQDN хоста Greenplum® можно получить несколькими способами:

  • Посмотрите FQDN в консоли управления:

    1. Перейдите на страницу кластера.
    2. Перейдите в раздел Хосты.
    3. Скопируйте значение в столбце FQDN хоста.
  • Скопируйте команду для подключения к кластеру в консоли управления. Команда содержит заполненный FQDN хоста. Чтобы получить команду, перейдите на страницу кластера и нажмите кнопку Подключиться.

  • Запросите список хостов в кластере с помощью CLI или API.

Особый FQDN первичного мастераОсобый FQDN первичного мастера

Чтобы вручную не подключаться к другому хосту-мастеру, если текущий станет недоступен, можно использовать особый FQDN вида c-<идентификатор_кластера>.rw.mdb.yandexcloud.net. Он всегда указывает на первичный хост-мастер. К этому FQDN разрешено подключаться и выполнять операции чтения и записи.

Пример подключения к первичному хосту-мастеру в кластере с идентификатором cat0adul1fj0********:

psql "host=c-cat0adul1fj0********.rw.mdb.yandexcloud.net \
      port=6432 \
      sslmode=verify-full \
      dbname=<имя_БД> \
      user=<имя_пользователя>"

Подключение из графических IDEПодключение из графических IDE

Подключения проверялись в следующем окружении:

  • Ubuntu 20.04, DBeaver: 22.2.4;
  • MacOS Monterey 12.7:
    • JetBrains DataGrip: 2023.3.4;
    • DBeaver Community: 24.0.0.

Подключаться из графических IDE можно только к кластеру в публичном доступе с использованием SSL-сертификата.

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

DataGrip
DBeaver
  1. Создайте источник данных:

    1. Выберите в меню File → New → Data Source → Greenplum®.

    2. На вкладке General:

      1. Укажите параметры подключения:

        • User, Password — имя и пароль пользователя БД;

        • URL — строка подключения. Используйте особый FQDN первичного мастера:

          jdbc:postgresql://c-<идентификатор_кластера>.rw.mdb.yandexcloud.net:6432/<имя_БД>
          
      2. Нажмите ссылку Download, чтобы загрузить драйвер соединения.

    3. На вкладке SSH/SSL:

      1. Включите настройку Use SSL.
      2. В поле CA file укажите путь к файлу SSL-сертификата для подключения.
  2. Нажмите ссылку Test Connection для проверки подключения. При успешном подключении будет выведен статус подключения, информация о СУБД и драйвере.

  3. Нажмите кнопку OK, чтобы сохранить источник данных.

  1. Создайте новое соединение с БД:
    1. Выберите в меню База данных пункт Новое соединение.
    2. Выберите из списка БД Greenplum®.
    3. Нажмите кнопку Далее.
    4. Укажите параметры подключения на вкладке Главное:
      • Хост — особый FQDN первичного мастера: c-<идентификатор_кластера>.rw.mdb.yandexcloud.net;
      • Порт — 6432;
      • База данных — имя БД для подключения;
      • В блоке Аутентификация укажите имя и пароль пользователя БД.
    5. На вкладке SSL:
      1. Включите настройку Использовать SSL.
      2. В поле Корневой сертификат укажите путь к сохраненному файлу SSL-сертификата.
  2. Нажмите кнопку Тест соединения ... для проверки подключения. При успешном подключении будет выведен статус подключения, информация о СУБД и драйвере.
  3. Нажмите кнопку Готово, чтобы сохранить настройки соединения с БД.

Подключение из pgAdmin 4Подключение из pgAdmin 4

Подключение проверялось для pgAdmin 4 версии 7.1 в macOS Ventura 13.0 и Microsoft Windows 10 Pro 21H1.

Подключаться из pgAdmin 4 можно только к хостам кластера в публичном доступе с использованием SSL-сертификата.

Создайте новое подключение к серверу:

  1. Выберите в меню Object → Register → Server...

  2. На вкладке General в поле Name укажите имя, под которым кластер будет отображаться в интерфейсе pgAdmin 4. Имя может быть любым.

  3. На вкладке Connection укажите параметры подключения:

    • Host name/address — особый FQDN хоста-мастера или обычный FQDN хоста;
    • Port — 6432;
    • Maintenance database — имя служебной базы данных postgres;
    • Username — имя пользователя, от имени которого выполняется подключение;
    • Password — пароль пользователя.
  4. На вкладке Parameters:

    • Установите параметр SSL mode в значение verify-full.
    • Добавьте новый параметр Root certificate и укажите в нем путь к сохраненному файлу SSL-сертификата.
  5. Нажмите кнопку Save, чтобы сохранить настройки подключения к серверу.

Кластер появится в списке серверов в навигационном меню.

Для наблюдения за состоянием кластера рекомендуется использовать сервис Yandex Monitoring вместо вкладки Dashboard в pgAdmin 4, потому что в ней может возникать ошибка:

column "wait_event_type" does not exist LINE 10: wait_event_type || ': ' || wait_event AS wait_event, ^

При работе с другими вкладками в pgAdmin 4 эта ошибка не возникает.

Подготовка к подключению из Docker-контейнераПодготовка к подключению из Docker-контейнера

Чтобы подключаться к кластеру Managed Service for Greenplum® из Docker-контейнера, добавьте в Dockerfile строки:

Подключение без SSL
Подключение с SSL
RUN apt-get update && \
    apt-get install postgresql-client --yes
RUN apt-get update && \
    apt-get install wget postgresql-client --yes && \
    mkdir --parents ~/.postgresql && \
    wget "https://storage.yandexcloud.net/cloud-certs/CA.pem" \
         --output-document ~/.postgresql/root.crt && \
    chmod 0655 ~/.postgresql/root.crt

Примеры строк подключенияПримеры строк подключения

Примеры проверялись в следующем окружении:

  • Виртуальная машина в Yandex Cloud с Ubuntu 20.04 LTS:
    • Bash: 5.0.16.
  • Виртуальная машина в Yandex Cloud с Windows Server 2019 Datacenter:
    • PostgreSQL: 13.
    • PowerShell: 5.1.17763.1490 Desktop.

При создании кластера Greenplum® пользовательская база данных не создается. Для проверки подключения используйте служебную базу postgres.

Для подключения к кластеру с публичным доступом подготовьте SSL-сертификат. В примерах предполагается, что SSL-сертификат root.crt расположен в директории:

  • /home/<домашняя_директория>/.postgresql/ для Ubuntu;
  • $HOME\AppData\Roaming\postgresql для Windows.

Подключиться к кластеру можно как с использованием обычного FQDN хоста-мастера, так и особого FQDN первичного хоста-мастера. О том, как получить FQDN хоста, см. инструкцию.

Примеры кода с заполненным FQDN хоста доступны в консоли управления по нажатию кнопки Подключиться на странице кластера.

BashBash

Перед подключением установите зависимости:

sudo apt update && sudo apt install --yes postgresql-client

Подключитесь к базе данных:

Подключение без SSL
Подключение с SSL
psql "host=c-<идентификатор_кластера>.rw.mdb.yandexcloud.net \
      port=6432 \
      sslmode=disable \
      dbname=postgres \
      user=<имя_пользователя> \
      target_session_attrs=read-write"
psql "host=c-<идентификатор_кластера>.rw.mdb.yandexcloud.net \
      port=6432 \
      sslmode=verify-full \
      dbname=postgres \
      user=<имя_пользователя> \
      target_session_attrs=read-write"

После выполнения команды введите пароль пользователя для завершения процедуры подключения.

Для проверки успешности подключения выполните запрос:

SELECT version();

C# EF CoreC# EF Core

Необходимые пакеты:

  • Microsoft.EntityFrameworkCore
  • Npgsql.EntityFrameworkCore.PostgreSQL
Подключение с SSL
using System;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;

namespace ConsoleApp
{
    public class VersionString
    {
        public int id { get; set; }
        public string versionString { get; set; }
    }
    public class ApplicationContext : DbContext
    {
        public ApplicationContext()
        {
            Database.EnsureCreated();
        }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            var host      = "c-<идентификатор_кластера>.rw.mdb.yandexcloud.net";
            var port      = "6432";
            var db        = "postgres";
            var username  = "<имя_пользователя>";
            var password  = "<пароль_пользователя>";
            optionsBuilder.UseNpgsql($"Host={host};Port={port};Database={db};Username={username};Password={password};Ssl Mode=Require;Trust Server Certificate=true;");
        }
        public DbSet<VersionString> VersionStrings { get; set; }

    }
    class Program
    {
        static async Task Main(string[] args)
        {
            using (ApplicationContext db = new ApplicationContext())
            {
                var versionStrings = await db.VersionStrings.FromSqlRaw(@"select 1 as id,version() as versionString;").ToListAsync();
                Console.WriteLine(versionStrings[0].versionString);
            }
        }
    }
}

GoGo

Перед подключением установите зависимости:

sudo apt update && sudo apt install --yes golang git && \
go mod init example && go get github.com/jackc/pgx/v4
Подключение без SSL
Подключение с SSL
  1. Пример кода:

    connect.go

    package main
    
    import (
    	"context"
    	"fmt"
    	"os"
    
    	"github.com/jackc/pgx/v4"
    )
    
    const (
    	host     = "c-<идентификатор_кластера>.rw.mdb.yandexcloud.net"
    	port     = 6432
    	user     = "<имя_пользователя>"
    	password = "<пароль_пользователя>"
    	dbname   = "postgres"
    )
    
    func main() {
    
    	connstring := fmt.Sprintf(
    		"host=%s port=%d dbname=%s user=%s password=%s target_session_attrs=read-write",
    		host, port, dbname, user, password)
    
    	connConfig, err := pgx.ParseConfig(connstring)
    	if err != nil {
    		fmt.Fprintf(os.Stderr, "Unable to parse config: %v\n", err)
    		os.Exit(1)
    	}
    
    	conn, err := pgx.ConnectConfig(context.Background(), connConfig)
    	if err != nil {
    		fmt.Fprintf(os.Stderr, "Unable to connect to database: %v\n", err)
    		os.Exit(1)
    	}
    
    	defer conn.Close(context.Background())
    
    	var version string
    
    	err = conn.QueryRow(context.Background(), "select version()").Scan(&version)
    	if err != nil {
    		fmt.Fprintf(os.Stderr, "QueryRow failed: %v\n", err)
    		os.Exit(1)
    	}
    
    	fmt.Println(version)
    }
    
  2. Подключение:

    go run connect.go
    
  1. Пример кода:

    connect.go

    package main
    
    import (
    	"context"
    	"crypto/tls"
    	"crypto/x509"
    	"fmt"
    	"io/ioutil"
    	"os"
    
    	"github.com/jackc/pgx/v4"
    )
    
    const (
    	host     = "c-<идентификатор_кластера>.rw.mdb.yandexcloud.net"
    	port     = 6432
    	user     = "<имя_пользователя>"
    	password = "<пароль_пользователя>"
    	dbname   = "postgres"
    	ca       = "/home/<домашняя_директория>/.postgresql/root.crt"
    )
    
    func main() {
    
    	rootCertPool := x509.NewCertPool()
    	pem, err := ioutil.ReadFile(ca)
    	if err != nil {
    		panic(err)
    	}
    
    	if ok := rootCertPool.AppendCertsFromPEM(pem); !ok {
    		panic("Failed to append PEM.")
    	}
    
    	connstring := fmt.Sprintf(
    		"host=%s port=%d dbname=%s user=%s password=%s sslmode=verify-full target_session_attrs=read-write",
    		host, port, dbname, user, password)
    
    	connConfig, err := pgx.ParseConfig(connstring)
    	if err != nil {
    		fmt.Fprintf(os.Stderr, "Unable to parse config: %v\n", err)
    		os.Exit(1)
    	}
    
    	connConfig.TLSConfig = &tls.Config{
    		RootCAs:            rootCertPool,
    		ServerName: "c-<идентификатор_кластера>.rw.mdb.yandexcloud.net",
    	}
    
    	conn, err := pgx.ConnectConfig(context.Background(), connConfig)
    	if err != nil {
    		fmt.Fprintf(os.Stderr, "Unable to connect to database: %v\n", err)
    		os.Exit(1)
    	}
    
    	defer conn.Close(context.Background())
    
    	var version string
    
    	err = conn.QueryRow(context.Background(), "select version()").Scan(&version)
    	if err != nil {
    		fmt.Fprintf(os.Stderr, "QueryRow failed: %v\n", err)
    		os.Exit(1)
    	}
    
    	fmt.Println(version)
    }
    

    При этом способе подключения в коде необходимо указывать полный путь к сертификату root.crt для PostgreSQL в переменной ca.

  2. Подключение:

    go run connect.go
    

JavaJava

Перед подключением:

  1. Установите зависимости:

    sudo apt update && sudo apt install --yes default-jdk maven
    
  2. Создайте директорию для проекта Maven:

    cd ~/ && mkdir --parents project/src/java/com/example && cd project/
    
  3. Создайте конфигурационный файл для Maven:

    pom.xml
    <?xml version="1.0" encoding="utf-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.example</groupId>
      <artifactId>app</artifactId>
      <packaging>jar</packaging>
      <version>0.1.0</version>
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
      </properties>
      <dependencies>
        <dependency>
          <groupId>org.postgresql</groupId>
          <artifactId>postgresql</artifactId>
          <version>42.2.16</version>
        </dependency>
      </dependencies>
      <build>
        <finalName>${project.artifactId}-${project.version}</finalName>
        <sourceDirectory>src</sourceDirectory>
        <resources>
          <resource>
            <directory>src</directory>
          </resource>
        </resources>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>attached</goal>
                </goals>
                <phase>package</phase>
                <configuration>
                  <descriptorRefs>
                    <descriptorRef>
                    jar-with-dependencies</descriptorRef>
                  </descriptorRefs>
                  <archive>
                    <manifest>
                      <mainClass>com.example.App</mainClass>
                    </manifest>
                  </archive>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.1.0</version>
            <configuration>
              <archive>
                <manifest>
                  <mainClass>com.example.App</mainClass>
                </manifest>
              </archive>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </project>
    

    Актуальную версию postgresql уточняйте на странице проекта в репозитории Maven.

Подключение без SSL
Подключение с SSL
  1. Пример кода:

    src/java/com/example/App.java

    package com.example;
    
    import java.sql.*;
    
    public class App {
      public static void main(String[] args) {
        String DB_URL  = "jdbc:postgresql://c-<идентификатор_кластера>.rw.mdb.yandexcloud.net:6432/postgres?targetServerType=master&ssl=false&sslmode=disable";
        String DB_USER = "<имя_пользователя>";
        String DB_PASS = "<пароль_пользователя>";
    
        try {
          Class.forName("org.postgresql.Driver");
    
          Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASS);
          ResultSet q = conn.createStatement().executeQuery("SELECT version()");
          if (q.next()) {
            System.out.println(q.getString(1));
          }
    
          conn.close();
        } catch (Exception ex) {
          ex.printStackTrace();
        }
      }
    }
    
  2. Сборка и подключение:

    mvn clean package && \
    java -jar target/app-0.1.0-jar-with-dependencies.jar
    
  1. Пример кода:

    src/java/com/example/App.java

    package com.example;
    
    import java.sql.*;
    
    public class App {
      public static void main(String[] args) {
        String DB_URL  = "jdbc:postgresql://c-<идентификатор_кластера>.rw.mdb.yandexcloud.net:6432/postgres?targetServerType=master&ssl=true&sslmode=verify-full";
        String DB_USER = "<имя_пользователя>";
        String DB_PASS = "<пароль_пользователя>";
    
        try {
          Class.forName("org.postgresql.Driver");
    
          Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASS);
          ResultSet q = conn.createStatement().executeQuery("SELECT version()");
          if (q.next()) {
            System.out.println(q.getString(1));
          }
    
          conn.close();
        } catch (Exception ex) {
          ex.printStackTrace();
        }
      }
    }
    
  2. Сборка и подключение:

    mvn clean package && \
    java -jar target/app-0.1.0-jar-with-dependencies.jar
    

Node.jsNode.js

Перед подключением установите зависимости:

sudo apt update && sudo apt install --yes nodejs npm && \
npm install pg
Подключение без SSL
Подключение с SSL

app.js

"use strict";
const pg = require("pg");

const config = {
    connectionString:
        "postgres://<имя_пользователя>:<пароль_пользователя>@c-<идентификатор_кластера>.rw.mdb.yandexcloud.net:6432/postgres"
};

const conn = new pg.Client(config);

conn.connect((err) => {
    if (err) throw err;
});
conn.query("SELECT version()", (err, q) => {
    if (err) throw err;
    console.log(q.rows[0]);
    conn.end();
});

app.js

"use strict";
const fs = require("fs");
const pg = require("pg");

const config = {
    connectionString:
        "postgres://<имя_пользователя>:<пароль_пользователя>@c-<идентификатор_кластера>.rw.mdb.yandexcloud.net:6432/postgres",
    ssl: {
        rejectUnauthorized: true,
        ca: fs
            .readFileSync("/home/<домашняя_директория>/.postgresql/root.crt")
            .toString(),
    },
};

const conn = new pg.Client(config);

conn.connect((err) => {
    if (err) throw err;
});
conn.query("SELECT version()", (err, q) => {
    if (err) throw err;
    console.log(q.rows[0]);
    conn.end();
});

При этом способе подключения в коде необходимо указывать полный путь к сертификату root.crt для PostgreSQL в переменной ca.

Подключение:

node app.js

ODBCODBC

Перед подключением установите зависимости:

sudo apt update && sudo apt install --yes unixodbc odbc-postgresql

Драйвер PostgreSQL ODBC будет автоматически зарегистрирован в файле /etc/odbcinst.ini.

Подключение без SSL
Подключение с SSL
  1. Пример кода:

    /etc/odbc.ini

    [postgresql]
    Driver=PostgreSQL Unicode
    Servername=c-<идентификатор_кластера>.rw.mdb.yandexcloud.net
    Username=<имя_пользователя>
    Password=<пароль_пользователя>
    Database=postgres
    Port=6432
    Pqopt=target_session_attrs=read-write
    
  2. Подключение:

    isql -v postgresql
    

    После подключения к СУБД выполните команду SELECT version();.

  1. Пример кода:

    /etc/odbc.ini

    [postgresql]
    Driver=PostgreSQL Unicode
    Servername=c-<идентификатор_кластера>.rw.mdb.yandexcloud.net
    Username=<имя_пользователя>
    Password=<пароль_пользователя>
    Database=postgres
    Port=6432
    Pqopt=target_session_attrs=read-write
    Sslmode=verify-full
    
  2. Подключение:

    isql -v postgresql
    

    После подключения к СУБД выполните команду SELECT version();.

PHPPHP

Перед подключением установите зависимости:

sudo apt update && sudo apt install --yes php php-pgsql
Подключение без SSL
Подключение с SSL
  1. Пример кода:

    connect.php

    <?php
      $conn = pg_connect("
          host=c-<идентификатор_кластера>.rw.mdb.yandexcloud.net
          port=6432
          sslmode=disable
          dbname=postgres
          user=<имя_пользователя>
          password=<пароль_пользователя>
          target_session_attrs=read-write
      ");
    
    $q = pg_query($conn, "SELECT version()");
    $result = pg_fetch_row($q);
    echo $result[0];
    
    pg_close($conn);
    ?>
    
  2. Подключение:

    php connect.php
    
  1. Пример кода:

    connect.php

    <?php
      $conn = pg_connect("
          host=c-<идентификатор_кластера>.rw.mdb.yandexcloud.net
          port=6432
          sslmode=verify-full
          dbname=postgres
          user=<имя_пользователя>
          password=<пароль_пользователя>
          target_session_attrs=read-write
      ");
    
    $q = pg_query($conn, "SELECT version()");
    $result = pg_fetch_row($q);
    echo $result[0];
    
    pg_close($conn);
    ?>
    
  2. Подключение:

    php connect.php
    

PowerShellPowerShell

Перед подключением установите PostgreSQL для Windows актуальной версии. Выберите только установку Command Line Tools.

Подключитесь к базе данных:

Подключение без SSL
Подключение с SSL
& "C:\Program Files\PostgreSQL\<версия>\bin\psql.exe" "`
    host=c-<идентификатор_кластера>.rw.mdb.yandexcloud.net `
    port=6432 `
    sslmode=disable `
    dbname=postgres `
    user=<имя_пользователя>"
& "C:\Program Files\PostgreSQL\<версия>\bin\psql.exe" "`
    host=c-<идентификатор_кластера>.rw.mdb.yandexcloud.net `
    port=6432 `
    sslmode=verify-full `
    dbname=postgres `
    user=<имя_пользователя>"

После выполнения команды введите пароль пользователя для завершения процедуры подключения.

Для проверки успешности подключения выполните запрос:

SELECT version();

PythonPython

Перед подключением установите зависимости:

sudo apt update && sudo apt install --yes python3 python3-pip && \
pip3 install psycopg2-binary
Подключение без SSL
Подключение с SSL
  1. Пример кода:

    connect.py

    import psycopg2
    
    conn = psycopg2.connect("""
        host=c-<идентификатор_кластера>.rw.mdb.yandexcloud.net
        port=6432
        sslmode=disable
        dbname=postgres
        user=<имя_пользователя>
        password=<пароль_пользователя>
        target_session_attrs=read-write
    """)
    
    q = conn.cursor()
    q.execute('SELECT version()')
    
    print(q.fetchone())
    
    conn.close()
    
  2. Подключение:

    python3 connect.py
    
  1. Пример кода:

    connect.py

    import psycopg2
    
    conn = psycopg2.connect("""
        host=c-<идентификатор_кластера>.rw.mdb.yandexcloud.net
        port=6432
        sslmode=verify-full
        dbname=postgres
        user=<имя_пользователя>
        password=<пароль_пользователя>
        target_session_attrs=read-write
    """)
    
    q = conn.cursor()
    q.execute('SELECT version()')
    
    print(q.fetchone())
    
    conn.close()
    
  2. Подключение:

    python3 connect.py
    

RubyRuby

Перед подключением установите зависимости:

sudo apt update && sudo apt install --yes ruby ruby-pg
Подключение без SSL
Подключение с SSL
  1. Пример кода:

    connect.rb

    require "pg"
    
    conn = PG.connect("
            host=c-<идентификатор_кластера>.rw.mdb.yandexcloud.net
            port=6432
            dbname=postgres
            user=<имя_пользователя>
            password=<пароль_пользователя>
            target_session_attrs=read-write
            sslmode=disable
    ")
    
    q = conn.exec("SELECT version()")
    puts q.getvalue 0, 0
    
    conn.close()
    
  2. Подключение:

    ruby connect.rb
    
  1. Пример кода:

    connect.rb

    require "pg"
    
    conn = PG.connect("
            host=c-<идентификатор_кластера>.rw.mdb.yandexcloud.net
            port=6432
            dbname=postgres
            user=<имя_пользователя>
            password=<пароль_пользователя>
            target_session_attrs=read-write
            sslmode=verify-full
    ")
    
    q = conn.exec("SELECT version()")
    puts q.getvalue 0, 0
    
    conn.close()
    
  2. Подключение:

    ruby connect.rb
    

Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками Broadcom Inc в США и/или других странах.

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

Предыдущая
Удаление кластера
Следующая
Управление ролями и пользователями
Проект Яндекса
© 2025 ООО «Яндекс.Облако»