Acesso de linha de comando com script ao SQL-Server a partir do linux [fechado]

8

Alguém sabe de uma ferramenta de linha de comando 1 pronta para me permitir conectar-me de um cliente linux a um servidor sql?

Quero poder executar consultas arbitrárias, mas na maioria das vezes quero fazer um despejo de banco de dados e depois restaurá-lo.

Isso deve ser programável, pois ele será integrado a um ambiente de criação automatizado.

1 FYI: Minha única outra alternativa é escrever algo. Provavelmente vou usar perl e DBI

Nifle
fonte

Respostas:

6

Encontrei tsql e, embora seu principal objetivo possa estar em outro lugar, ele cobre minhas necessidades.

Está incluído no pacote EPEL . Eu instalei com isso:
rpm -Uvh http://ftp.df.lth.se/pub/fedora-epel/6/x86_64/epel-release-6-7.noarch.rpm

FreeTDS (14 de maio de 2011) FreeTDS (14 de maio de 2011)

NOME
       tsql - utilitário para testar conexões e consultas FreeTDS

SINOPSE
       tsql {-S servername [-I interface] | -H nome do host -p porta}
              -U nome de usuário [-P senha] [-o opções]

       tsql -C

DESCRIÇÃO
       O tsql é uma ferramenta de diagnóstico fornecida como parte do FreeTDS. Ele usa o protocolo TDS diretamente para
       conectar-se ao Sybase ou Microsoft SQL Servers e permite que o usuário emita consultas que testam a capacidade
       responsabilidades do FreeTDS.

       tsql * não * é um substituto para um isql completo, como o sqsh (www.sqsh.org). Ele é projetado para
       confie na biblioteca FreeTDS de nível mais baixo, tdslib, como uma maneira de isolar possíveis erros na
       implementação col.
Nifle
fonte
4

Você pode usar o sql-cli para conectar-se à instância local e ao sql azure. Permite executar consultas pontuais ou arquivos de script usando o .runcomando

Usage: mssql [options]

Options:

-h, --help                     output usage information
-V, --version                  output the version number
-s, --server <server>          Server to conect to
-u, --user <user>              User name to use for authentication
-p, --pass <pass>              Password to use for authentication
-o, --port <port>              Port to connect to
-t, --timeout <timeout>        Connection timeout in ms
-d, --database <database>      Database to connect to
-q, --query <query>            The query to execute
-v, --tdsVersion <tdsVersion>  Version of tds protocol to use [7_4, 7_2, 7_3_A, 7_3_B, 7_4]
-e, --encrypt                  Enable encryption
-f, --format <format>          The format of output [table, csv, xml, json]
Muhammad Hasan Khan
fonte
Alguma maneira de dizer ao CLI para usar a autenticação do Windows?
TCopple
@TCopple nop, ele não suporta autenticação do Windows.
Muhammad Hasan Khan
1

A Microsoft cria um driver ODBC do SQL Server para Linux, embora seja apenas binário e seja executado apenas em determinadas versões RHEL de 64 bits. 1 Qualquer coisa que possa consumir ODBC (por meio do conjunto de drivers unixODBC) pode usá-lo. Para scripts, você pode usar python, perl ou qualquer coisa que seja reproduzida com o unixODBC para automatizar tarefas.

O pacote também vem com versões do bcp e sqlcmd. O Sqlcmd oferecerá suporte a consultas interativas ou permitirá que consultas sejam incorporadas em scripts de shell.

  1. Embora você possa criar outras versões instalando as bibliotecas relevantes - um processo bem conhecido pelas pessoas que desenvolvem o Oracle no Linux.
ConcernedOfTunbridgeWells
fonte
0

SqlTool é uma CLI JDBC para usos interativos e de automação. Ele suporta exportação e importação de maneira semelhante ao Sql * Loader da Oracle (se você estiver familiarizado com isso).

Blaine
fonte