Налаштування 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 день.







