Конфигурирование связанного сервера между 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.
- Linked Server: Введите желаемое имя связанного сервера. Это имя будет использоваться в запросах для получения данных из PostgreSQL. В нашем примере имя - DVDShop.
- Server Type: Укажите тип сервера. Мы используем драйвер ODBC для подключения к источнику данных, поэтому выберите тут Other Data source.
- Provider: Укажите имя провайдера. Мы используем Microsoft OLEDB Provider for ODBC Driver. Поэтому выберите его из выпадающего списка.
- Product Name: Укажите имя продукта. Укажите подходящее имя. В нашем примере это PostgreSQL DB.
- Data Source: Укажите имя источника данных, которое вы указывали при установке драйвера pSQLODBC. Мы создали источник данных ODBC с именем pgadmin13, поэтому указываем его.
- Provide string: Если вы не сконфигурировали источник данных, то можете указать полную строку провайдера. Мы создали источник данных, поэтому не задаем строку провайдера.
- 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]
Обратные ссылки
Автор не разрешил комментировать эту запись
Комментарии
Показывать комментарии Как список | Древовидной структурой