Quais são algumas maneiras de acessar o Microsoft SQL Server a partir do Linux?

Temos uma máquina do Windows a correr o SQL Server 2005, e precisamos de ser capazes de executar algumas consultas de bases de dados sobre ele a partir de uma caixa Linux. Quais são algumas das maneiras recomendadas de fazer isso? Idealmente, queremos um utilitário de linha de comando semelhante ao sqlcmd no Windows.

 46
Author: cwick, 2008-09-29

12 answers

FreeTDS + unixODBC ou iODBC

Instalar primeiro FreeTDS, em seguida, configurar um dos dois motores ODBC para usar FreeTDS como seu driver ODBC. Em seguida, use a interface de linha de comando do motor ODBC.

UnixODBC has isql, iODBC has iodbctest

Você também pode usar a sua linguagem de programação favorita (eu usei com sucesso o Perl, C, Python e Ruby para se ligar ao MSSQL)

Estou a usar 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
 31
Author: Vinko Vrsalovic, 2008-09-29 16:22:52

O SQL-cli é uma interface de linha de comandos cross-platform baseada no nodejs para o servidor sql. Você pode instalá-lo através do npm https://www.npmjs.org/package/sql-cli

Pode ligar-se tanto à instância Azure on-premise como à SQL.

 13
Author: Muhammad Hasan Khan, 2014-05-12 04:37:47

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

O Sqsh era principalmente um substituto isql para o servidor SQL do Sybase (agora o ASE), mas funciona muito bem para se ligar ao servidor SQL (desde que use o freetds).

Para compilar, basta apontar $SYBASE para a instalação do freetds e deve funcionar a partir daí. Uso - o no meu Mac o dia todo.

A melhor parte do sqsh são as funcionalidades avançadas, tais como a ligação simples do servidor (não há necessidade de configurar servidores ligados no servidor SQL), controle de fluxo e looping (não mais concatenando strings e executando SQL dinâmico), e cópia/carga invisível em massa.

Qualquer um que use qualquer outra ferramenta de linha de comando é simplesmente louco! :)

 9
Author: Matt Rogish, 2008-09-29 21:55:03

Pymssql é um módulo Python DB-API, baseado em FreeTDS. Funcionou comigo. Crie algumas funções auxiliares, se precisar, e use-as a partir do shell Python.

 6
Author: Constantin, 2008-09-29 16:32:02

Mono contém um ADO.NET provedor que deve fazer isso por você. Eu não sei se existe um utilitário de linha de comando para ele, mas você definitivamente poderia encerrar algum C# para fazer as consultas se não houver.

Ter um olhar para http://www.mono-project.com/TDS_Providers e http://www.mono-project.com/SQLClient

 5
Author: SteinNorheim, 2008-09-29 16:21:38
 4
Author: mleu, 2014-09-20 12:41:18
 3
Author: borjab, 2008-09-29 22:02:09

Você não diz O que quer fazer com os dados resultantes, mas se são consultas gerais para o desenvolvimento/manutenção, então eu teria pensado Desktop Remoto para o servidor do windows e, em seguida, usando as ferramentas de servidor SQL reais em seus seria sempre uma opção mais produtiva sobre qualquer solução hackeada em conjunto no próprio Linux.

 2
Author: Cruachan, 2008-09-29 16:21:32

Existe uma lib de abstracção disponível para o PHP. Não sei o que a caixa do seu cliente irá suportar, mas se o seu Linux então certamente deve suportar a construção de uma interface de consulta PHP com este: http://adodb.sourceforge.net espero que isso te ajude.

 2
Author: Taptronic, 2008-09-29 16:35:51

Eu não estava confortável com a solução freetds, é por isso que codificei uma classe (histórico de comandos, completação automática em tabelas e campos, etc.)

Http://www.phpclasses.org/package/8168-PHP-Use-ncurses-to-get-key-inputs-and-write-shell-text.html

 0
Author: François Neumann-rystow, 2013-10-22 15:58:43

Valentina-db tem versão gratuita para o servidor sql
.rpm e ...deb
o ID de série será enviado por e-mail após o registo

Https://www.valentina-db.com/en/

Https://valentina-db.com/en/store/category/14-free-products

valentina-db

 0
Author: mohsen.noor, 2018-05-19 07:18:07

Se usar o eclipse, poderá instalar nele o 'plugin' de ferramentas de dados e usá-lo para todos os motores DB, incluindo o MS SQLServer. Só precisa de um condutor JDBC para o motor DB.

 0
Author: Mehdi Zarei, 2018-07-11 04:57:41