Skriptfähiger Befehlszeilenzugriff auf SQL-Server unter Linux [geschlossen]

8

Kennt jemand ein fertiges 1- Befehlszeilentool, mit dem ich eine Verbindung von einem Linux-Client zu einem SQL-Server herstellen kann?

Ich möchte in der Lage sein, beliebige Abfragen auszuführen, aber die meiste Zeit möchte ich in der Lage sein, einen Datenbankspeicherauszug zu erstellen und ihn dann wiederherzustellen.

Dies muss skriptfähig sein, da es in eine automatisierte Build-Umgebung integriert werden kann.

1 FYI: Meine einzige andere Alternative ist, etwas zu schreiben. Ich werde wahrscheinlich Perl und DBI verwenden

Nifle
quelle

Antworten:

6

Ich habe tsql gefunden und obwohl sein Hauptzweck woanders liegen mag, deckt es meine Bedürfnisse ab.

Es ist im EPEL-Paket enthalten . Ich habe es damit installiert:
rpm -Uvh http://ftp.df.lth.se/pub/fedora-epel/6/x86_64/epel-release-6-7.noarch.rpm

FreeTDS (14. Mai 2011) FreeTDS (14. Mai 2011)

NAME
       tsql - Dienstprogramm zum Testen von FreeTDS-Verbindungen und -Abfragen

ZUSAMMENFASSUNG
       tsql {-S Servername [-I Schnittstelle] | -H Hostname -p Port}
              -U Benutzername [-P Passwort] [-o Optionen]

       tsql -C

BESCHREIBUNG
       tsql ist ein Diagnosetool, das im Rahmen von FreeTDS bereitgestellt wird. Es verwendet das TDS-Protokoll direkt, um
       Stellen Sie eine Verbindung zu Sybase- oder Microsoft SQL-Servern her und können Sie dem Benutzer Abfragen stellen, mit denen die Kapazität getestet wird
       Fähigkeiten von FreeTDS.

       tsql ist * kein * Ersatz für eine vollständige isql wie sqsh (www.sqsh.org). Es ist so konzipiert
       Verlassen Sie sich auf die FreeTDS-Bibliothek der untersten Ebene, tdslib, um potenzielle Fehler im Proto zu isolieren
       col Implementierung.
Nifle
quelle
4

Sie können sql-cli verwenden , um eine Verbindung sowohl zur lokalen als auch zur SQL Azure-Instanz herzustellen. Mit diesem .runBefehl können Sie einmalige Abfragen oder Skriptdateien ausführen

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
quelle
Gibt es eine Möglichkeit, die CLI anzuweisen, die Windows-Authentifizierung zu verwenden?
TCopple
@TCopple nop, es unterstützt keine Windows-Authentifizierung.
Muhammad Hasan Khan
1

Microsoft erstellt einen SQL Server- ODBC-Treiber für Linux, der jedoch nur binär ist und nur auf bestimmten 64-Bit-RHEL-Builds ausgeführt wird. 1 Alles, was ODBC verbrauchen kann (über die unixODBC-Treibersuite), kann es verwenden. Für die Skripterstellung können Sie Python, Perl oder alles verwenden, was mit unixODBC spielt, um Aufgaben zu automatisieren.

Das Paket enthält auch Versionen von bcp und sqlcmd. Sqlcmd unterstützt interaktive Abfragen oder ermöglicht das Einbetten von Abfragen in Shell-Skripte.

  1. Obwohl Sie es auf anderen Builds aufrufen können, indem Sie die entsprechenden Bibliotheken installieren - ein Prozess, der den Leuten bekannt ist, die Oracle unter Linux aufrufen.
ConcernedOfTunbridgeWells
quelle
0

SqlTool ist eine JDBC-CLI für interaktive und automatisierte Zwecke . Es unterstützt das Exportieren und Importieren auf ähnliche Weise wie der Sql * Loader von Oracle (sofern Sie damit vertraut sind).

Blaine
quelle