Доступ из командной строки к SQL-серверу из сценариев [закрыто]

8

Кто-нибудь знает о готовом инструменте командной строки 1 , который позволил бы мне подключиться с Linux-клиента к SQL-серверу?

Я хочу иметь возможность выполнять произвольные запросы, но большую часть времени я хочу иметь возможность получить дамп базы данных, а затем восстановить его.

Это имеет быть скриптами , как она будет интегрироваться в автоматизированной среде сборки.

1 К вашему сведению: моя единственная альтернатива - написать что-нибудь. Я, вероятно, буду использовать Perl и DBI

Nifle
источник

Ответы:

6

Я нашел tsql, и хотя его основная цель может лежать в другом месте, он покрывает мои потребности.

Входит в комплект EPEL . Я установил это с этим:
rpm -Uvh http://ftp.df.lth.se/pub/fedora-epel/6/x86_64/epel-release-6-7.noarch.rpm

FreeTDS (14 мая 2011 г.) FreeTDS (14 мая 2011 г.)

ИМЯ
       tsql - утилита для тестирования соединений и запросов FreeTDS

СИНТАКСИС
       tsql {-S имя_сервера [-I интерфейс] | -H имя хоста -p порт}
              -U имя пользователя [-P пароль] [-o опции]

       ЦКЛ-С

ОПИСАНИЕ
       TSQL - это диагностический инструмент, предоставляемый как часть FreeTDS. Он использует протокол TDS напрямую для
       на серверы Sybase или Microsoft SQL и позволяет пользователю создавать запросы, которые проверяют возможности
       Способности FreeTDS.

       tsql * не * замена полной версии isql, такой как sqsh (www.sqsh.org). Он предназначен для
       полагаться на низкоуровневую библиотеку FreeTDS, tdslib, как способ изолировать потенциальные ошибки в прото
       реализация col.
Nifle
источник
4

Возможно, вы захотите взглянуть на SQL Workbench / J

Это на основе Java / JDBC, поэтому прекрасно работает на Linux

Он поддерживает режим графического интерфейса , интерактивное использование командной строки (без графического интерфейса) и может быть запущен в пакетном режиме . Он также поддерживает экспорт в различные форматы, чтобы получить «дамп».

a_horse_with_no_name
источник
4

Вы можете использовать sql-cli для подключения как к локальному экземпляру, так и к экземпляру sql azure. Позволяет запускать разовые запросы или запускать файлы сценариев с помощью .runкоманды

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]
Мухаммед Хасан Хан
источник
Есть ли какой-нибудь способ сказать клиенту использовать аутентификацию Windows?
TCopple
@TCopple nop, он не поддерживает аутентификацию Windows.
Мухаммед Хасан Хан
1

Microsoft создает драйвер ODBC для SQL Server для Linux, хотя он только двоичный и работает только на определенных 64-битных сборках RHEL. 1 Все, что может потреблять ODBC (через набор драйверов unixODBC), может его использовать. Для сценариев вы можете использовать python, perl или что-нибудь, что играет с unixODBC для автоматизации задач.

Пакет также поставляется с версиями bcp и sqlcmd. Sqlcmd будет поддерживать интерактивные запросы или позволять встраивать запросы в сценарии оболочки.

  1. Хотя вы можете использовать его в других сборках, установив соответствующие библиотеки - процесс, хорошо известный людям, использующим Oracle в Linux.
ConcernedOfTunbridgeWells
источник
0

SqlTool - это JDBC CLI для интерактивного использования и автоматизации. Он поддерживает экспорт и импорт способом, аналогичным Oracle Sql * Loader (если вы знакомы с этим).

Blaine
источник