Настройка связанных серверов: ms sql server и teradata

в 16:43, , рубрики: Администрирование баз данных

Всем привет. Решил написать данную статью по одной простой причине: не нашел подробной инструкции по настройке удаленного связанного сервера между серверами teradata и ms sql server.

В моей организации данные хранятся на разных серверах: oracle, teradata, mssql. Часто (несколько раз день) мне и моим коллегам приходится выполнять действия, которые назвать "эффективными" очень трудно: "пишешь запрос — экспортируешь данные в файл — импортируешь его на сервер mssql — работаешь". Временные затраты на один запрос — более 3 часов.

Настройка связанных серверов: ms sql server и teradata - 1

"Эффективная" работа

Причина таких сложных действий — отсутствие прав по созданию таблиц на серверах teradata. Именно поэтому "заливаем" данные на ms sql server (тут с правами все хорошо). Это было вступление, а теперь перехожу к описанию последовательности действий.

Примечание: инструкция подготовлена с использованием SQL Server Management Studio 12 и Teradata Client ver 15 (если версия Teradata будет ниже, например 14, то придется скачать с оффициального сайта дополнительное программное обеспечение).

Действие 1 — Настройка подключения ODBC

Заходим:Панель управленияСистема и безопасностьАдминистрирование — Источники данных ODBC"

В разделе "Пользовательский DSN" нажимаем "Добавить" и выбираем драйвер "Teradata" и заполняем поля.

Важно: запомнить имя нового источника. Оно (имя) еще нам понадобится.

Действие 2 — Связанный сервер

Открываем Management Studio — Объекты сервера — связанные сервера — создать связанный сервер.

Поля раздела "General/Общие": Linked Server — произвольное имя, Provider — Microsoft OLE DB Provider for ODBC Drivers, Product Name — ServiceNow, Data Source — имя источника данных, который создан в "Действии 1".

Настройка связанных серверов: ms sql server и teradata - 2

Связанный сервер раздел "General/Общие"

Поля раздела "Security/Безопасность": Remote login — имя УЗ на сервере Teradata, With password — пароль УЗ на сервере Teradata.

Настройка связанных серверов: ms sql server и teradata - 3

Связанный сервер раздел "Security/Безопасность"

На сервере MSSQL работаю Я и мои коллеги. Для того, чтобы никто не мог войти через связанный сервер (teradata) под моей УЗ, добавлю сопоставление имен входа на локальным и удаленном серверах. Ну вот и все — готово. Сохраняем.

Настройка связанных серверов: ms sql server и teradata - 4

Сопоставление имен входа на локальным и удаленном серверах

Открываем новый запрос. пишем запрос "select from openquery(serviceme, 'select from dual') и получаем ошибку. Доступ закрыт. Идем дальше.

Настройка связанных серверов: ms sql server и teradata - 5

Пример ошибки

Действие 3 — SQLEXPRESS и встроенная УЗ

Заходим в SQL Configuration Manager — свойства SQL Server (MSSQLSERVER). Меняем галочку на "Использовать для входа встроенную УЗ (Local System)".

Настройка связанных серверов: ms sql server и teradata - 6

SQLEXPRESS и встроенная УЗ

Если запускать Management Studio 12 от имени администратора, то работать будет. Нам нужно не под администратором. Поэтому идем дальше.

Действие 4 — SQLEXPRESS и сетевая служба

Заходим в SQL Configuration Manager — свойства SQL Server (MSSQLSERVER). Меняем галочку на "Использовать для входа встроенную УЗ (Network Service)", но под УЗ

NT ServiceMSSQLSERVER

Настройка связанных серверов: ms sql server и teradata - 7

SQLEXPRESS и сетевая служба

Сверим карты — на всякий "пожарный" случай. Должно получиться так.

Настройка связанных серверов: ms sql server и teradata - 8

Диспетчер конфигурации SQL Server

Действие 5 — Служба компонентов

win + R — dcomcnfg — компьютеры — свойства мой компьютер — вкладка свойства по умолчанию.
Заполни по примеру ниже:

Настройка связанных серверов: ms sql server и teradata - 9

Служба компонентов

Действие 6 — Настройка DCOM

win + R — dcomcnfg — компьютеры — мой компьютер — настройка DCOM — свойства msdainitialize. Копируем Application ID/Код приложения. Необходимо для поиска объекта в реестре windows.

Настройка связанных серверов: ms sql server и teradata - 10

Cвойства объекта msdainitialize

Дальше win + R — regedit- поиск. Нужно найти в реестре, по коду приложения, объект и войти в его permission/разрешение.

Настройка связанных серверов: ms sql server и teradata - 11

Реестр объекта msdainitialize

Full control для локального администратора ПК.

Настройка связанных серверов: ms sql server и teradata - 12

Свойства объекта msdainitialize в реестре WINDOWS

Подтверди — сохрани. Сделали это для того, чтобы у объекта (код приложения) стал активен раздел Properties/Свойства.

Настройка связанных серверов: ms sql server и teradata - 13

Раздел безопасность объекта msdainitialize

Customize/Настройка — Edit ( кнопка стала активна) — добавляем службе полные права NT ServiceMSSQLSERVER

Настройка связанных серверов: ms sql server и teradata - 14

Полные права для службы MSSQLSERVER

Предоставить права службе нужно в разделах: Launch and Activation Permission, Access Permission, Configuration Permission. Далее необходимо перезапустить службу MSQSQLSERVER — Restart/Перезапустить NT ServiceMSSQLSERVER.

Действие 7 COM Security/Безопасность COM

win + R — dcomcnfg — компьютеры — мой компьютер — настройка DCOM
Изменить значение по умолчанию, добавив службу NT ServiceMSSQLSERVER и присвоить ей максимальные права для разделов: Launch and Activation Permission, Access Permission.

Настройка связанных серверов: ms sql server и teradata - 15

Access Permission

Далее необходимо перезапустить службу MSQSQLSERVER — Restart/Перезапустить NT ServiceMSSQLSERVER.

Запускаем — select from openquery(serviceme, 'select from dual'). Работает.

Настройка связанных серверов: ms sql server и teradata - 16

Выполнение запроса

Послесловие COM Security/Безопасность COM

Надеюсь данная инструкция поможет с настройками. Теперь данные импортируем сразу на mssql server (экономя не минуты, а часы). До настройки выполнение запроса, экспорт файла на пк, импорт данных файла на mssqlserver — длительность всего этого 4 часа. Сейчас 47 секунд. Эффективная работа.

Автор: человек со стажем

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js