# Таблицы и базы данных

Таблицы и базы подключаются в разделе **«Интеграции»**. Общие правила (виды подключения, статусы карточки, «Только чтение», отключение) описаны на странице [«Подключение сервисов»](/help/integrations).

Из баз данных в каталоге есть только PostgreSQL. Другую базу (MySQL, MS SQL и т.п.) напрямую подключить нельзя; если у системы над ней есть HTTP API, его можно подключить как [«Свой API»](/help/custom-api). Дашборды и датасеты Яндекс DataLens подключаются отдельной [интеграцией](/integrations/yandex-datalens).

## Google Sheets

Листы, ячейки и диапазоны таблиц Google. Подробнее на [странице интеграции](/integrations/google-sheets).

### Что умеет агент

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

<TryPrompt prompt="Открой таблицу по ссылке … и посчитай сумму по столбцу «Выручка» за октябрь. Ничего в таблице не меняй." />

### Что нужно заранее

Аккаунт Google, под которым на sheets.google.com видны нужные таблицы: агент увидит ровно те таблицы, что видит он.

### Шаги

### Нажмите «Подключить через Google»
В карточке **«Google Sheets»** нажмите **«Подключить через Google»** и войдите в нужный аккаунт в отдельном окне.

### Дайте агенту ссылку на таблицу
Списка файлов у Sheets API нет, поэтому называйте таблицу ссылкой или её идентификатором: по названию агент её не ищет.

### Какие права выдать

- **Запись**: у аккаунта должна быть роль «Редактор». Попросите владельца файла нажать «Открыть доступ» и добавить аккаунт с этой ролью. С ролями «Читатель» и «Комментатор» агент только читает.
- **Одна таблица**: подключите отдельный аккаунт Google без ваших файлов и поделитесь с ним только нужной таблицей через «Открыть доступ». Агент увидит только то, чем вы поделились с этим аккаунтом.

### Ограничения

- Google Диск в доступ не входит: агент работает только с таблицами.
- Загруженный файл .xlsx по API не читается. Откройте его и выберите **«Файл» → «Сохранить как таблицу Google»**, дальше работайте с копией.

### Как отозвать доступ

Нажмите **«Отключить»** у нас. Доступ к отдельной таблице закрывается в ней самой: удалите подключённый аккаунт из «Открыть доступ».

### Неполадки

- **Агент не находит таблицу**: дайте ссылку, а не название, и проверьте, что таблица видна под подключённым аккаунтом.
- **Запись не проходит**: у аккаунта роль «Читатель» или «Комментатор».
- **Корпоративный домен не пускает**: администратор Google Workspace открывает «Безопасность» → «Контроль доступа и данных» → «Управление API» и отмечает приложение как «Доверенное».

## PostgreSQL

SQL только на чтение по Supabase, Neon, Yandex Managed PostgreSQL, RDS и своей базе. Подробнее на [странице интеграции](/integrations/postgres).

### Что умеет агент

Выполняет запросы на чтение: SELECT, WITH, SHOW и EXPLAIN, по одному запросу за вызов. INSERT, UPDATE и любые DDL отклоняются, даже если у роли есть права.

### Что нужно заранее

- Доступ владельца к базе, чтобы создать роль.
- Публичный адрес базы и разрешённый порт для постоянных адресов «Сам Решу», которые указаны в требованиях на странице подключения PostgreSQL.

### Шаги

### Создайте роль только на чтение
В SQL Editor Supabase или Neon, иначе в psql под владельцем: `CREATE ROLE analytics_ro LOGIN PASSWORD '…'`. Пароль роли станет паролем подключения.

### Выдайте права на чтение
`GRANT pg_read_all_data TO analytics_ro` (PostgreSQL 14 и новее). Для более старых версий: `GRANT USAGE ON SCHEMA` и `GRANT SELECT ON ALL TABLES IN SCHEMA` для каждой схемы, не только public.

### Откройте доступ к базе
Разрешите порт базы в брандмауэре и `hostssl` в `pg_hba.conf` для этой роли, базы и адресов из требований. У облачного провайдера настройте такие же правила.

### Заполните форму
**«Хост»** (имя сервера из сертификата, без протокола), **«Порт»**, **«База данных»**, **«Имя пользователя»** и **«Пароль»** роли. Для своего CA загрузите **«Корневой сертификат (sslrootcert)»** в PEM.

### Какие права выдать

Только чтение: `pg_read_all_data` или `SELECT` по нужным схемам. Права на запись роли не нужны, подключение всё равно их не использует.

### Ограничения

- `pg_read_all_data` не обходит row-level security, а в Supabase она включена почти везде: без политики SELECT такие таблицы вернут ноль строк.
- Соединение всегда по TLS с проверкой цепочки и имени сервера. Хост должен совпадать с именем в сертификате, для IP-адреса нужен IP SAN.
- У пулера Supabase к имени пользователя добавляется `.<ref>` проекта.

### Как отозвать доступ

Нажмите **«Отключить»** у нас. В базе удалите роль или смените её пароль.

### Неполадки

- **Таблица возвращает ноль строк**: на ней включена row-level security без политики SELECT для этой роли.
- **Подключение не проходит**: успешное чтение из DataLens или проверка с самой машины не доказывают, что база открыта для адресов «Сам Решу». Проверьте правила брандмауэра и `pg_hba.conf` именно для этих адресов.
- **Ошибка сертификата**: хост не совпадает с именем в сертификате или не загружен корневой сертификат своего CA.
