Каковы некоторые способы доступа к Microsoft SQL Server из Linux? - PullRequest
48 голосов
/ 29 сентября 2008

У нас есть компьютер с Windows, на котором работает SQL Server 2005, и мы должны иметь возможность выполнять на нем некоторые запросы к базе данных из коробки Linux. Каковы некоторые из рекомендуемых способов сделать это? В идеале нам нужна утилита командной строки, похожая на sqlcmd в Windows.

Ответы [ 13 ]

31 голосов
/ 29 сентября 2008

FreeTDS + unixODBC или iODBC

Установите сначала FreeTDS, затем настройте один из двух механизмов ODBC для использования FreeTDS в качестве драйвера ODBC. Затем используйте интерфейс командной строки механизма ODBC.

unixODBC имеет isql, iODBC имеет iodbctest

Вы также можете использовать свой любимый язык программирования (я успешно использовал Perl, C, Python и Ruby для подключения к MSSQL)

Я лично использую FreeTDS + iODBC:

$more /etc/freetds/freetds.conf
[10.0.1.251]
    host = 10.0.1.251
    port = 1433
    tds version = 8.0

$ more /etc/odbc.ini
[ACCT]
Driver = /usr/local/freetds/lib/libtdsodbc.so
Description = ODBC to SQLServer via FreeTDS
Trace = No
Servername = 10.0.1.251
Database = accounts_ver8
15 голосов
/ 12 мая 2014

sql-cli - кроссплатформенный интерфейс командной строки для сервера sql на основе nodejs. Вы можете установить его через npm https://www.npmjs.org/package/sql-cli

Может подключаться как к локальному экземпляру, так и к экземпляру sql azure.

10 голосов
/ 30 сентября 2008

sqsh (http://www.sqsh.org/) + freetds (http://www.freetds.org)

sqsh был в основном заменой isql для Sybase SQL Server (теперь ASE), но он прекрасно работает для подключения к SQL Server (при условии, что вы используете freetds).

Для компиляции просто укажите $ SYBASE на установку freetds, и она должна работать оттуда. Я использую его на своем Mac весь день.

Лучшая часть sqsh - это расширенные функции, такие как простое простое соединение с сервером (нет необходимости настраивать связанные серверы в SQL Server), управление потоком и циклы (больше не нужно объединять строки и выполнять динамический SQL) и невидимая масса копия / нагрузка.

Любой, кто использует любой другой инструмент командной строки, просто сумасшедший! :)

6 голосов
/ 29 сентября 2008

pymssql - это модуль Python DB-API, основанный на FreeTDS. Это сработало для меня. При необходимости создайте несколько вспомогательных функций и используйте их из оболочки Python.

5 голосов
/ 29 сентября 2008

Mono содержит поставщика ADO.NET, который должен сделать это за вас. Я не знаю, есть ли для этого утилита командной строки, но вы можете определенно обернуть C #, чтобы выполнить запросы, если их нет.

Посмотрите http://www.mono -project.com / TDS_Providers и http://www.mono -project.com / SQLClient

4 голосов
/ 20 сентября 2014
3 голосов
/ 30 сентября 2008

Если вы используете Java, взгляните на JDBC.

http://msdn.microsoft.com/en-us/library/ms378672(SQL.90).aspx

http://en.wikipedia.org/wiki/Jdbc

2 голосов
/ 29 сентября 2008

Для PHP доступна библиотека абстракций. Не уверен, что будет поддерживать блок вашего клиента, но если его Linux, то, безусловно, должен поддерживать создание интерфейса запросов PHP с этим: http://adodb.sourceforge.net/ Надеюсь, что это поможет вам.

2 голосов
/ 29 сентября 2008

Вы не говорите, что хотите сделать с полученными данными, но если бы это были общие запросы для разработки / обслуживания, то я бы подумал об удаленном рабочем столе для сервера Windows, а затем использовал бы настоящие инструменты SQL Server на их основе. всегда был более продуктивным вариантом, чем любое взломанное вместе решение на самом Linux.

0 голосов
/ 21 февраля 2019

Есть хороший инструмент для доступа к базам данных MSSQL на основе CLI , теперь .

Он называется mssql-cli и немного похож на postgres psql.

Страница хранилища Gihub

Установить, например, через pip (глобальная установка, для локальной установки пропустить часть sudo):

sudo pip install mssql-cli
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...