Настройка Retool для работы с базами данных
Подключение Retool к базе данных требует настройки ресурса, настройки прав доступа и конфигурации безопасного соединения. Retool работает с PostgreSQL, MySQL, Microsoft SQL Server, MongoDB, Redis, Google BigQuery и другими.
Подключение PostgreSQL
В Retool → Resources → Create New → PostgreSQL:
Host: db.production.example.com
Port: 5432
Database name: app_production
Database username: retool_readonly
Password: ****
SSL mode: require
Создание отдельного пользователя с ограниченными правами:
-- Пользователь только для чтения
CREATE USER retool_readonly WITH PASSWORD 'secure_password';
GRANT CONNECT ON DATABASE app_production TO retool_readonly;
GRANT USAGE ON SCHEMA public TO retool_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO retool_readonly;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO retool_readonly;
-- Отдельный пользователь для операций записи (для конкретных таблиц)
CREATE USER retool_ops WITH PASSWORD 'another_password';
GRANT SELECT, UPDATE ON users TO retool_ops;
GRANT SELECT, INSERT, UPDATE ON support_tickets TO retool_ops;
Безопасное подключение через SSH Tunnel
Если БД не имеет публичного IP:
Enable SSH tunnel: YES
SSH host: bastion.example.com
SSH port: 22
SSH username: retool-tunnel
SSH private key: [вставить ключ]
На бастионе:
# Разрешить только проброс портов, без shell
Match User retool-tunnel
ForceCommand /bin/false
PermitTunnel yes
AllowTcpForwarding yes
Параметризованные запросы
Retool подставляет значения компонентов в запрос:
UPDATE users
SET status = {{ statusSelect.value }},
updated_at = NOW(),
updated_by = {{ current_user.email }}
WHERE id = {{ usersTable.selectedRow.data.id }}
AND status != {{ statusSelect.value }}
Переменные в {{ }} экранируются — SQL-инъекции исключены.
Сроки
Настройка подключения и первых 3–5 запросов — 1 день.







