Odbc driver 11 for sql server что это

Обновлено: 05.07.2024

Я настраивал системный DSN (64-разрядный) для своей базы данных на SQL Server 2016 с 64-разрядной версией Windows 10 Pro. Хотя меня попросили выбрать драйвер для настройки источника данных, есть следующие варианты:

  • Драйвер ODBC 13 для SQL Server
  • SQL Server
  • Собственный клиент SQL Server 11.0
  • Собственный клиент SQL Server RDA 11.0

Казалось, я могу настроить источник данных со всеми этими драйверами. Тогда какой из них выбрать по скорости и эффективности? В чем разница между ними?

4 ответа

Драйвер ODBC для SQL Server

ODBC - это основной собственный API доступа к данным для приложений, написанных на C, C ++, PHP, Python и других, для подключения к SQL Server.

Он широко используется в сценариях интеграции данных.

Кроме того, предпочтительно, если вы разрабатываете приложение для Windows и развертываете его в Linux.

SQL Server

Полное имя драйвера SQL Server - Драйвер ODBC SQL Server. Это старый драйвер, начиная с sql 2000. Вы можете использовать его для подключения к SQL Server 2016, но вы не сможете получить доступ к новым функциям и функциям SQL Server 2016.

Собственный клиент SQL Server

Собственный клиент SQL Server содержит как поставщик SQL OLE DB, так и драйвер SQL ODBC для поддержки встроенного подключения к SQL Server и всех функций sql server 2016. Это лучший вариант в среде Windows.

RDA для собственного клиента SQL Server

Удаленный доступ к данным (RDA) в Microsoft SQL Server Compact 3.5 позволяет приложению получать доступ к данным из удаленной таблицы базы данных SQL Server.

Он также может хранить, читать и обновлять эти данные в SQL Server Compact 3.5, а затем обновлять исходную таблицу SQL Server.

В следующем выпуске RDA будет удалено, поэтому не используйте его.

Поэтому выбирайте драйвер sql на основе вышеуказанных критериев.

Похоже, что в последней версии для собственного клиента SQL Server собственный клиент Microsoft® SQL Server® 2012 также назывался собственным клиентом SQL Server 11.0. Не поддерживает новую функцию в SQL Server 2014 и новее.

Обратите внимание, что SNAC 11 не поддерживает функции, выпущенные с SQL Server 2014 и SQL Server 2016, которые не были доступны как часть SQL Server 2012, такие как разрешение прозрачного сетевого IP-адреса, постоянное шифрование, проверка подлинности Azure AD, массовое копирование и параметры значений таблицы.

Вы должны использовать Microsoft® ODBC Driver 11 или 13 для SQL Server, чтобы пользоваться новой функцией в SQL Server 2014 или более поздней версии.

Как упоминалось ранее в этом посте, более поздние версии драйвера ODBC (13 и более поздние) предоставляют вам доступ к более продвинутым функциям, доступным в SQL Server 2014, 2016 и т. Д.

В этой ссылке говорится, что вам необходимо использовать ODBC 13 для SQL Server 2012: Версии драйверов SQL Server

Однако, если вы посмотрите на загрузку для ODBC версии 17, она укажет на поддержку SQL Server 2012 (и более старых версий SQL Server).

ODBC Driver - Details section

Так что, возможно, драйвер ODBC версии 17 (по крайней мере) обратно совместим со старыми версиями SQL Server.

Надеюсь это поможет!

Драйвер Microsoft ODBC для SQL Server (MSODBCSQL)

Собственный клиент SQL Server (SQLNCLI)

Представлено в SQL Server 2005 и поставляется с SQL Server (также устанавливается через sqlncli.msi из пакетов функций SQL Server). Добавлены функции по сравнению с SQL Server: несколько активных наборов результатов (MARS), определяемые пользователем типы данных (UDT), уведомления о запросах, изоляция моментальных снимков и поддержка типов данных XML.

RDA для собственного клиента SQL Server

Удаленный доступ к данным (RDA) - это функция SQL Server Compact, которая «позволяет приложению получать доступ к данным из удаленной таблицы базы данных SQL Server». Я не могу найти много документации, но похоже, что этот драйвер был предназначен для поддержки сценариев репликации с помощью Compact Edition.

SQL Server (SQLSRV32)

Включено в компоненты доступа к данным Microsoft (MDAC) (теперь называемые компонентами доступа к данным Windows (WDAC)). Этот драйвер доступен по умолчанию в Windows (начиная с 98 и NT 4.0).

Для корректного подключения к базам данных Microsoft SQL Server необходима установка драйверов ODBC. В данной статье приведены инструкции по настройки данных драйверов.

Предварительно необходимо установить программы gcc и make:

На Debian-подобных дисрибутивах:

sudo apt-get install tar gcc make g++

На RedHat-подобных дистрибутивах:

sudo yum install tar gcc make

Процесс установки диспетчера драйверов описан в статье «Installing the Driver Manager».

Примечание . Не рекомендуется использовать флаг SQL_WCHART_CONVERT при сборке unixODBC.

Настройка сборки и установка драйвера диспетчера

После распаковки архива с драйвером и перед установкой, прежде всего необходимо внести изменения в файлы «build_dm.sh» и «install.sh»:

В файле «build_dm.sh» . Задайте значение req_proc="unknown" (только для Astra Linux и Debian).

В файле «install.sh» . Задайте значение req_proc="unknown" (только для Astra Linux и Debian).

Если установка происходит на Debian-подобный дистрибутив (Ubuntu, Astra Linux и т.п.), то в файле «install.sh» замените строку:

req_libs=( glibc e2fsprogs krb5-libs openssl )

req_libs=( libc6 e2fsprogs libkrb5-3 openssl )

Затем внесите изменения в функцию «check_required_libs». Данная функция должна выглядеть следующим образом:

log "Checking that required libraries are installed"

local present=$(dpkg-query -l "$lib" | grep "$lib" 2>/dev/null)

В файле «build_dm.sh» замените -xvzf на -xvf .

Скачайте установочный файл ODBC unixODBC-2.3.0.tar.gz.

Установка ODBC

bash build_dm.sh --download-url=file://unixODBC-2.3.0.tar.gz

>>Run the command 'cd /tmp/unixODBC<временная метка>/unixODBC-2.3.0; make install' to install the driver manager.

cd /tmp/unixODBC<временная метка>/unixODBC-2.3.0

sudo make install
cd -

Если команды выполняются через пользователя sudo, то для перехода в директорию необходимо сменить пользователя на root с помощью команды:

Далее перейти в папку и выполнить команду:

cd /tmp/unixODBC<временная метка>/unixODBC-2.3.0

После этого выйти из-под пользователя root сочетанием клавиш «CTRL+D».

Примечание . Команда «sudo make install» может быть заменена на «sudo checkinstall», если программа checkinstall установлена в ОС.

После этого необходимо сохранить изменения. Проверьте возможность установки драйвера в системе выполнив команду:

bash install.sh verify

Starting install for Microsoft ODBC Driver 11 for SQL Server

Checking for 64 bit Linux compatible OS . OK

Checking required libs are installed . OK

unixODBC utilities (odbc_config and odbcinst) installed . OK

unixODBC Driver Manager version 2.3.0 installed . OK

unixODBC Driver Manager configuration correct . OK*

Microsoft ODBC Driver 11 for SQL Server already installed . NOT FOUND

See /tmp/msodbcsql.30762.3652.5941/install.log for more information about installation failures.

Для дальнейшей установки необходимо устранить все ошибки. После их устранения можно выполнить команду для установки драйвера:

bash install.sh install --accept-license

Создание символьной ссылки для платформы

Для создания символьной ссылки для платформы выполните команды:

cd /opt/ Foresight /fp9.x-biserver/bin
sudo ln -s
/opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0 libmsodbcsql-11.0.so

Примечание . Расположение библиотек может отличаться от указанного в команде.

Разделяемые библиотеки

Перед началом работы с драйвером нужно убедиться в отсутствии проблем с разделяемыми библиотеками. Для этого выполните команду:

ldd /opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0 | grep not

Примечание . Расположение библиотек может отличаться от указанного в команде.

В случае присутствия всех необходимых библиотек можно переходить к регистрации драйвера.

Если в результате выполнения команды получился список, например:

libcrypto.so.10 => not found

libssl.so.10 => not found

То необходимо выполнить следующие действия:

sudo apt-get install libssl-dev

sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10

sudo ln -s libssl.so.1.0.0 libssl.so.10

Для Ubuntu символьные ссылки будут другие:

cd /usr/lib/x86_64-linux-gnu
sudo apt-get install libssl-dev​
sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 libcrypto.so.10
sudo ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 libssl.so.10​

После это ещё раз проверьте все зависимости драйвера и в случае отсутствия проблем переходить к регистрации.

После выполнения установки ODBC запись о драйвере будет добавлена в файл «odbcinst.ini». При необходимости регистрацию драйвера можно осуществить вручную.

Для регистрация драйвера выполните команду:

odbcinst -i -d -f mssql.driver.template

где файл mssql.driver.template содержит необходимые для работы драйвера параметры. Например:

[ODBC Driver 11 for SQL Server]

Для проверки правильности установки драйвера можно выполнить следующую команду:

odbcinst -q -d -n "ODBC Driver 11 for SQL Server"

Результатом правильной установки будет служить вывод всех параметров драйвера с их значениями.

Проверка подключения

Перед непосредственной работой с драйвером необходимо протестировать настройки подключения. Сперва можно использовать подключение с применением telnet:

telnet 192.168.1.1 1433

telnet: Unable to connect to remote host: Connection refused

Для устранения ошибок на данном этапе обратитесь к системному администратору.

Connected to 192.168.1.1.

Следующим шагом является проверка соединения с сервером с использованием параметров из источника данных. Для это выполните следующую команду:

isql -v <DATA_SOURCE_NAME> <USER>@<HOST> <PASSWORD>

При этом будет возможность выполнить запросы к базе данных.

[ISQL]ERROR: Could not SQLConnect

Для устранения ошибок на данном этапе необходимо обратиться к администратору СУБД.

Asterisk к Microsoft SQL Server

Установка ODBC Driver for SQL Server версий 13 и 17

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

Из репозитория Microsoft будет установлена более новая версия unixODBC, чем та, что доступна в репозиториях CentOS 6, обязательно пересоберите Asterisk, чтобы модуль res_odbc.so был собран с включением только что установленной версии unixODBC.

Установка ODBC Driver for SQL Server версии 11

Опять-таки Asterisk нужно будет пересобрать после установки более нового пакета unixODBC.

Настройка ODBC-подключения в Asterisk
Создание ODBC DSN
Сперва нужно добавить DSN в файл /etc/odbc.ini. Формат DSN:

[<имя_DSN>]
Driver = <имя_драйвера_из_файла_/etc/odbcinst.ini>
Server = <адрес_сервера>
Port = <номер_порта>
Database = <имя_базы_данных>

Протестировать DSN можно следующей командой:

isql MS_SQL_ASTERISK <имя_пользователя> <пароль>

Если с подключением возникают проблемы, можно временно добавить следующие параметры:

Trace = Yes
TraceFile = /tmp/MS_SQL_ASTERISK_ODBC.log

В файл /tmp/MS_SQL_ASTERISK_ODBC.log будет записан лог подключения.

[<имя_ODBC-подключения>]
enabled => yes
dsn => <имя_DSN_из_файла_/etc/odbc.ini>
username => <имя_пользователя>
password => <пароль>
pre-connect => yes
max_connections => <максимальное_количество_одновременных_подключений> ; для Asterisk 12+
pooling => <максимальное_количество_одновременных_подключений> ; для Asterisk 11

MS SQL Server поддерживает одновременно только один запрос через одно соединение, поэтому можно указать более одного соединения, если планируется большая интенсивность запросов к БД.
Пример ODBC-подключения:

[ms_sql]
enabled => yes
dsn => MS_SQL_ASTERISK
username => db_user
password => db_secret
pre-connect => yes
max_connections => 3


С помощью ODBC, программы могут подключаться к различным СУБД (MySQL, Microsoft SQL Server, SQLite, MongoDB и другие) и выполнять SQL-запросы.

Как создать имя источника базы данных (DSN)

Имя источника базы данных указывается в функции подключения ODBC.
Например, в PHP эта функция называется odbc_connect().









16. Готово, мы создали имя источника базы данных (DSN) и теперь мы можем использовать его в своих программах.


Как подключаться к ODBC из PHP

Убедитесь, что в php.ini раскомментирована строка:
Подключаться будем с помощью функции odbc_connect().

Есть 2 способа подключения:
1. Указать имя источника базы данных (DSN)

В завершении, давайте попробуем получить данные из MS SQL сервера через ODBC-подключение

Читайте также: