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.
12 answers
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
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.
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! :)
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.
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
Desde Novembro de 2011 A Microsoft fornece o seu próprioservidor SQL ODBC Driver Para Linux para Red Hat Enterprise Linux (RHEL) e SUSE Linux Enterprise Server (SLES).
- Obter O controlador 11 do Microsoft ODBC para o servidor SQL no Red Hat Linux
- Obter O controlador 11 do Microsoft ODBC para o servidor SQL no SUSE-CTP
- controlador ODBC na documentação do Linux
Também inclui sqlcmd
Para Linux.
Se estiver a usar Java, dê uma vista de olhos no JDBC.
Http://msdn.microsoft.com/en-us/library/ms378672(SQL.90).aspx
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.
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.
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
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/
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.