Спрашивайте свою базу PostgreSQL словами, без SQL
Подключите PostgreSQL к ИИ-агенту: список таблиц, колонки и типы, связи и данные. Агент ответит на вопрос по базе аналитическим SELECT без вашего SQL.
Как агент работает с PostgreSQL
Агент подключается к базе напрямую по параметрам (хост, порт, имя базы, пользователь, пароль и, если нужен, корневой сертификат) и начинает с обзора схемы: список таблиц, их колонки и типы. Дальше SQL он пишет сам: считает выручку, средний чек и конверсию, сопоставляет строки с данными других подключённых сервисов и показывает, из каких таблиц и колонок взята каждая цифра. Тот же запрос можно поставить на расписание и получать результат регулярно.
Особенность именно PostgreSQL, которую агент учитывает: роль с pg_read_all_data не обходит row-level security. Таблица под RLS без политики SELECT вернёт ноль строк, и это не «данных нет», а «доступа нет», о чём агент говорит прямо. Так же он читает и пустой результат обычного запроса: сначала проверяет, есть ли строки вообще, и только потом называет цифру нулём. Схему агент перечитывает перед разбором, поэтому переименованная колонка или новая таблица подхватываются без переподключения.
На запись агент в базу не ходит: коннектор пропускает только SELECT, WITH, SHOW и EXPLAIN, по одному запросу за вызов и с лимитом строк, а INSERT, UPDATE и любые DDL отклоняет до отправки в базу. Это устройство самого коннектора, а не настройка, которую можно снять из чата, поэтому подключение остаётся аналитическим по природе: агент читает, считает и объясняет, из чего сложился результат, но ничего в базе не меняет.
Доступ агент получает не входом через сервис, а логином и паролем отдельной роли, поэтому его границы задаёте вы: агент видит ровно то, что видит эта роль, и расширить их из чата нельзя. Каждый запрос коннектор ограничивает по времени и по числу строк, а слишком тяжёлый обрывает по таймауту, вместо того чтобы висеть на рабочей базе. Если таблицы нет или права не дают её прочитать, агент скажет об этом прямо, а не покажет пустую таблицу.
Сценарии интеграции
Вопрос к базе без SQL
Агент сам разберёт схему (таблицы, колонки и связи) и ответит на вопрос по данным, не требуя от вас ни строчки SQL.
Метрики прямо в базе
Агент посчитает выручку, средний чек и конверсию запросом к вашей базе и покажет, из каких таблиц и колонок взяты цифры.
Регулярная сводка по данным
Агент по расписанию прогонит один и тот же запрос (вчерашние продажи или всплеск отказов) и пришлёт результат.
Сверка с внешними сервисами
Агент сопоставит строки вашей базы с данными подключённых сервисов и покажет расхождения по заказам или платежам.
Что вообще лежит в базе
Агент перечислит таблицы, колонки и типы и объяснит, где какие данные лежат: первое, что нужно на входе в чужую или давно забытую базу.
Разбор тяжёлого запроса
Агент прогонит EXPLAIN по нужному запросу и покажет, где план уходит в полный перебор таблицы, до того, как отчёт снова упрётся в таймаут.
Примеры: PostgreSQL
Средний чек за июнь: 4 380 ₽, на 6% выше мая.
Взял из orders и order_items, оплаченные статусы, 12 940 заказов. Отменённые и тестовые исключил, без них картина ровнее на 200 ₽.
Средний чек · июнь
Документ · DOCXКак подключить
Перед подключением
- Права владельца базы или суперпользователя для SQL-консоли
- PostgreSQL 14 или новее, иначе права выдаются вручную
- Поддержка SSL: подключение идёт с проверкой сертификата (verify-full)
- Сервер пускает только известные адреса? Разрешите подключения с 158.160.205.91 и 87.228.27.163.
- 1
В SQL Editor или psql создайте роль LOGIN
В «SQL Editor» Supabase или Neon, иначе в psql под владельцем: CREATE ROLE analytics_ro LOGIN PASSWORD '…'. Пароль роли станет паролем подключения.
- 2
Выдайте роли GRANT pg_read_all_data
GRANT pg_read_all_data TO analytics_ro. Встроенная роль есть с PostgreSQL 14; на старых версиях: GRANT USAGE, GRANT SELECT и ALTER DEFAULT PRIVILEGES.
- 3
Проверьте row-level security
pg_read_all_data не обходит row-level security, а в Supabase она включена почти везде: без политики SELECT такие таблицы вернут ноль строк.
- 4
Включите публичный доступ к хосту базы
Хост должен быть публичным. В pg_hba.conf или правилах провайдера разрешите вход по TLS для роли только на чтение.
- 5
Возьмите хост и порт по кнопке «Connect»
Хост, порт и имя базы: кнопка «Connect» в Supabase и Neon, у Yandex это FQDN хоста и порт 6432. Режим SSL: require.
Частые вопросы
Параметрами подключения, а не входом через сервис: хост, порт, имя базы, пользователь, пароль и, если провайдер подписывает базу своим CA, его корневой сертификат. Заведите роль только на чтение (CREATE ROLE analytics_ro LOGIN PASSWORD и GRANT pg_read_all_data), её логин и пароль и вводятся в форме.
Список таблиц, колонки и типы и результаты SELECT в пределах прав роли. Роль pg_read_all_data не обходит row-level security: таблицы под RLS без политики SELECT вернут ноль строк.
Нет. Разрешены только SELECT, WITH, SHOW и EXPLAIN, по одному запросу за вызов и с лимитом строк; INSERT, UPDATE и любые DDL коннектор отклоняет.
Хост должен быть публичным: в Yandex Managed PostgreSQL включите публичный доступ и откройте TCP 6432, в RDS включите publicly accessible и правило на 5432. Подключение приходит с постоянных адресов Сам Решу, они названы в требованиях на этой странице: разрешите их в pg_hba.conf или в правилах провайдера, по TLS и для отдельной роли только на чтение. Supabase и Neon открыты сразу.