Accès en ligne de commande par script à SQL-Server depuis linux [fermé]

8

Quelqu'un connaît-il un outil de ligne de commande 1 prêt à l'emploi qui me permettrait de me connecter d'un client Linux à un serveur SQL?

Je veux pouvoir exécuter des requêtes arbitraires, mais la plupart du temps, je veux pouvoir effectuer un vidage de la base de données, puis le restaurer.

Cela doit être scriptable car il s'intégrera dans un environnement de construction automatisé.

1 FYI: Ma seule autre alternative est d'écrire quelque chose. Je vais probablement utiliser perl et DBI

Nifle
la source

Réponses:

6

J'ai trouvé tsql et bien que son objectif principal puisse être ailleurs, il couvre mes besoins.

Il est inclus dans le package EPEL . Je l'ai installé avec ceci:
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)

NOM
       tsql - utilitaire pour tester les connexions et requêtes FreeTDS

SYNOPSIS
       tsql {-S nom_serveur [-I interface] | -H nom d'hôte -p port}
              -U nom d'utilisateur [-P mot de passe] [-o options]

       tsql -C

LA DESCRIPTION
       tsql est un outil de diagnostic fourni dans le cadre de FreeTDS. Il utilise directement le protocole TDS pour
       connexion à Sybase ou Microsoft SQL Servers, et permet à l’utilisateur d’émettre des requêtes qui testent
       capacités de FreeTDS.

       tsql n'est * pas * un remplacement pour un isql complet, tel que sqsh (www.sqsh.org). Il est conçu pour
       s'appuyer sur la bibliothèque FreeTDS de niveau le plus bas, tdslib, pour isoler les bogues potentiels dans le proto-
       implémentation col.
Nifle
la source
4

Vous voudrez peut-être regarder SQL Workbench / J

Il est basé sur Java / JDBC fonctionne donc bien sur Linux

Il prend en charge un mode GUI , une utilisation en ligne de commande interactive (pas d'interface graphique) et peut être exécuté en mode batch . Il prend également en charge l' exportation dans différents formats afin de prendre le «dump».

un cheval sans nom
la source
4

Vous pouvez utiliser sql-cli pour vous connecter à la fois à l'instance locale et à sql azure. Il vous permet d'exécuter des requêtes ponctuelles ou d'exécuter des fichiers de script à l'aide de la .runcommande

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
la source
Est-il possible de dire au cli d'utiliser l'authentification Windows?
TCopple
@TCopple nop, il ne prend pas en charge l'authentification Windows.
Muhammad Hasan Khan
1

Microsoft crée un pilote ODBC SQL Server pour Linux, bien qu'il soit uniquement binaire et ne fonctionne que sur certaines versions RHEL 64 bits. 1 Tout ce qui peut consommer ODBC (via la suite de pilotes unixODBC) peut l'utiliser. Pour les scripts, vous pouvez utiliser python, perl ou tout ce qui joue avec unixODBC pour automatiser les tâches.

Le package est également livré avec des versions de bcp et sqlcmd. Sqlcmd prendra en charge l'interrogation interactive ou permettra aux requêtes d'être incorporées dans des scripts shell.

  1. Bien que vous puissiez l'intégrer à d'autres builds en installant les bibliothèques appropriées - un processus bien connu des gens qui mettent Oracle sous Linux.
ConcernedOfTunbridgeWells
la source
0

SqlTool est une CLI JDBC pour des utilisations interactives et d'automatisation. Il prend en charge l'exportation et l'importation d'une manière similaire à Sql * Loader d'Oracle (si vous êtes familier avec cela).

Blaine
la source