5.6 KiB
SQL-PROXY
Описание
Легковесный REST-сервис, разработанный для замены вызовов ADODB в устаревших программных системах, поддерживающих веб-запросы. Этот сервис упрощает взаимодействие с базами данных, сохраняя при этом безопасность и эффективность.
Например, вы можете удалить все несовместимые с Linux компоненты, такие как следующие элементы (пример для 1С:Предприятие):
Соединение = Новый COMObject("ADODB.Connection");
Соединение.Open(СтрокаСоединения);
и вместо этого использовать веб-запросы аналогичным образом, применяя простую библиотеку для получения результатов SQL-запросов в формате JSON с переменным числом колонок, определяемых текстом SQL-запроса:
Функция УстановитьSQLСоединение(СтрокаСоединения) Экспорт
HTTP = Новый HTTPConnection;
ПутьAPI = "/api/v1/connection";
...
Обратитесь к примеру для языка 1С:Предприятие в папке src/doc, чтобы узнать, как использовать этот API. Обратите внимание, что данный сервис не ограничен только 1С и может быть использован в других системах.
Основные особенности
- Поддержка нескольких баз данных: совместим с PostgreSQL, Microsoft SQL Server и MySQL. Не требуется устанавливать драйверы и настраивать источники ODBC. При необходимости можно интегрировать дополнительные стандартные драйверы баз данных Golang добавив несколько строчек кода;
- Режим запуска: можно настроить как простую отдельную службу, либо использовать в контейнере в k8s;
- Безопасное управление учетными данными: не хранит данные учетных записей, гарантируя защиту конфиденциальной информации;
- Защищённое соединение: при необходимости, поддерживает HTTPS для безопасной передачи данных;
- Пул соединений: использует общий переиспользуемый пул SQL-соединений с регламентными задачами обслуживания для удаления устаревших или зависших соединений;
- Поддержка языка SQL: поддерживает любые SQL-команды без ограничений. Команда SELECT возвращает результаты запроса в виде гибкого JSON-формата набора записей;
- Ограничение результатов: позволяет настраивать ограничения на количество строк, возвращаемых командами SELECT;
- Поддержка подготовленных выражений: реализована;
- Гибкая привязка: может быть привязан к localhost или любому указанному IP-адресу для повышения безопасности. По умолчанию предполагается привязка к localhost и работа в паре с устаревшим программным обеспечением;
- Ответственность за безопасность: не выполняет валидацию SQL-запросов в целях безопасности. Ответственность за настройку соответствующих привилегий базы данных лежит на администраторе СУБД (помните, что это замена вызовов ADODB и по идее у вас уже должны быть настроены роли и пользователи, не используйте учётную запись с административными привилегиями);
- Мониторинг и метрики: предоставляет метрики Prometheus;
Описание API
Текущая версия API: 1.2. См. спецификацию Swagger OpenAPI 3.0 в папке src/docs/api
Как скомпилировать
Номер текущей версии: 1.2.1. Выполнить в командной строке:
make prod
Как запустить
Все параметры передаются через переменные окружения, см. Makefile для детальной информации и значений настроек по умолчанию:
BIND_ADDR=localhost BIND_PORT=8081 MAX_ROWS=10000 LOG_LEVEL=3 sql-proxy