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