Skip to content

Конфигурирование связанного сервера между SQL Server и PostgreSQL при использовании ODBC-драйверов

Пересказ статьи Nisarg Upadhyay. Configure a Linked Server between SQL Server and PostgreSQL using ODBC drivers


В этой статье рассматривается конфигурирование связанного сервера между SQL Server 2019 и PostgreSQL. Моя предыдущая статья под названием Configure ODBC drivers for PostgreSQL являлась введением в драйвер ODBC для PostgreSQL. Мы рассмотрели как загрузить, установить и сконфигурировать драйвер. Теперь мы узнаем как использовать драйвер ODBC для доступа к данным в PostgreSQL из SQL Server 2019.

Установка среды


Для демонстрации я установил и сконфигурировал на моей рабочей станции экземпляр SQL Server 2019 и PostgreSQL 13. Я создал базу данных DVDShop на PostgreSQL 13. В предыдущей статье я сконфигурировал драйвер ODBC, который указывает на DemoDatabase в PostgreSQL. Здесь мы собираемся подключиться к базе данных DVDShop, поэтому мы должны изменить имя базы данных в драйвере pSQLODBC. Для этого откройте панель управления -> откройте Administrative tools -> откройте ODBC Data Source (64 bit) -> откройте вкладку System DSN -> выберите pgadmin13 и щелкните Configure.



Откроется окно диалога установки драйвера с именем PostgreSQL Unicode ODBC Driver (pSQLODBC) Setup. Мы уже задавали все требуемые параметры, поэтому изменим только имя базы данных в текстовом поле Database. Мы подключаемся к базе данных DVDShop, поэтому введите DVDShop в это поле.



Для проверки соединения щелкните Test. Выполнение этой команды покажет:



Как видно, соединение установлено успешно. Щелкните Save для обновления изменений в системном DNS и закройте диалоговое окно. Теперь давайте создадим связанный сервер в SQL Server 2019.

Создание связанного сервера


Мы будем создавать связанный сервер при помощи SQL Server management studio (SSMS). Откройте SQL Server management studio -> подключитесь к экземпляру SQL Server -> в браузере объектов разверните Server Objects -> выполните щелчок правой кнопкой на Linked Server и выберите New Linked Server.



Откроется диалоговое окно создания нового связанного сервера. Для конфигурирования связанного сервера укажите следующие пункты на странице General.

  1. Linked Server: Введите желаемое имя связанного сервера. Это имя будет использоваться в запросах для получения данных из PostgreSQL. В нашем примере имя - DVDShop.

  2. Server Type: Укажите тип сервера. Мы используем драйвер ODBC для подключения к источнику данных, поэтому выберите тут Other Data source.

  3. Provider: Укажите имя провайдера. Мы используем Microsoft OLEDB Provider for ODBC Driver. Поэтому выберите его из выпадающего списка.

  4. Product Name: Укажите имя продукта. Укажите подходящее имя. В нашем примере это PostgreSQL DB.

  5. Data Source: Укажите имя источника данных, которое вы указывали при установке драйвера pSQLODBC. Мы создали источник данных ODBC с именем pgadmin13, поэтому указываем его.

  6. Provide string: Если вы не сконфигурировали источник данных, то можете указать полную строку провайдера. Мы создали источник данных, поэтому не задаем строку провайдера.

  7. Catalog: Укажите имя базы данных. Это не обязательно, поэтому мы не вводит имя базы данных.


Следующий скриншот показывает страницу general в окне диалога New Linked Server.



Для подключения к базе данных PostgreSQL мы должны предоставить информацию о логине. Поэтому откройте страницу security в окне диалога New Linked Server. Мы используем учетные данные PostgreSQL для подключения к базе данных PostgreSQL, поэтому выберите опцию Be made using this security context и укажите имя пользователя и пароль пользователя Postgres.



Мы не меняем опций сервера, поэтому щелкните ОК для создания связанного сервера с именем DVDShop, и закройте окно диалога.

Тестирование соединения со связанным сервером


Теперь давайте проверим, можем ли мы подключиться к PostgreSQL. Для этого выполним щелчок правой кнопкой на DVDSHOP и выберем Test Connection.



Вывод команды тестирования:



Как видно, соединение с сервером прошло успешно.

Просмотр объектов в базе данных DVDShop


Мы можем увидеть объект, созданный в базе данных DVDShop, используя связанный сервер DVDSHOP. Для этого разверните DVDSHOP -> разверните Catalogs.



В ветке Catalogs вы можете увидеть только базу данных DVDShop, поскольку мы её указали при конфигурирования источника данных ODBC.

Замечание: Если вы не укажите базу данных, вы здесь не увидите никаких баз данных PostgreSQL.

Теперь разверните базу данных DVDShop -> раскройте Tables. В ветке tables вы можете увидеть список таблиц, которые были созданы в базе данных DVDShop.



В ветке Views вы сможете увидеть список представлений, которые были созданы в базе данных DVDShop.



Доступ к данным базы данных DVDShop, используя связанный сервер.


Сначала давайте выполним оператор SELECT; мы хотим извлечь данные из таблицы public.address. Выполните следующий запрос:

USE master
go
SELECT TOP 10 *
FROM [DVDSHOP].[DVDShop].[public].[address]



Обратные ссылки

Нет обратных ссылок

Комментарии

Показывать комментарии Как список | Древовидной структурой

Нет комментариев.

Автор не разрешил комментировать эту запись

Добавить комментарий

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Form options

Добавленные комментарии должны будут пройти модерацию прежде, чем будут показаны.