В этой статье мы рассмотрим, как выполнить настройку подключения к MS SQL Server через ODBC драйвер с хоста Linux (Ubuntu в этом примере).
Сначала добавьте публичный GPG ключ репозитория:
$ curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
Затем добавьте репозитарий Microsoft:
$ curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
Обновите список репозитариев:
$ sudo apt-get update
Теперь можно установить драйвер Microsoft ODBC 18 и утилиту sqlcmd:
$ sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18
$ sudo ACCEPT_EULA=Y apt-get install -y mssql-tools18
Если вы будете использовать авторизации через встроенную проверку подлинности Windows (с помощью Kerberos), установите:
$ sudo apt-get install -y unixodbc-dev libgssapi-krb5-2
Добавьте путь в переменную окружения:
$ echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
$ source ~/.bashrc
Вывести текущие настройки ODBC и подключенные драйвера:
$ odbcinst -j
$ odbcinst -q -d
Теперь можно создать DSN для подключения к MSSQL серверу. Отредактируйте файл /etc/odbc.ini и добавьте в него:
[MSSQLDB1] Driver = ODBC Driver 18 for SQL Server Server = tcp:192.168.58.10,1433 Encrypt = yes TrustServerCertificate=yes # Можно задать базу данных по умолчанию # Database = 1cdb
$ nc -zv 192.168.158.100 1433
Проверьте подключение к SQL Server через ваш DSN:
$ isql -v MSSQLDB1 sa Passwordd!
Для подключения из sqlcmd используется следуюий синтексис:
$ sqlcmd -S192.168.158.100 -U sa -C -d <db_name>
Если ваш Linux хост добавлен в домен AD (ввод Ubuntu/Debian в домен Active Directory), можно использовать встроенную проверку подлинности Kerberos.
Добавьте в файл /etc/odbc.ini:
Trusted_Connection=yes
Для подключения к SQL Server под текущим пользователем используется команда:
$ sqlcmd -E -SMSSQLDB1L -C