1
0
mirror of https://github.com/alm494/sql_proxy.git synced 2025-10-08 22:01:51 +02:00
Files
sql_proxy/README.ru.md
2025-04-30 16:08:13 +03:00

5.6 KiB

en en

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

API overview

Как скомпилировать

Номер текущей версии: 1.2.1. Выполнить в командной строке:

make prod

Как запустить

Все параметры передаются через переменные окружения, см. Makefile для детальной информации и значений настроек по умолчанию:

BIND_ADDR=localhost BIND_PORT=8081 MAX_ROWS=10000 LOG_LEVEL=3 sql-proxy