Связанные серверы (компонент Database Engine)

Настройте связанный сервер, чтобы включить Компонент SQL Server Database Engine для выполнения команд в источниках данных OLE DB вне экземпляра SQL Server. Обычно связанные серверы настроены на включение компонента Компонент Database Engine для выполнения инструкции Transact-SQL, включающей таблицы в другом экземпляре SQL Server или другом продукте для работы с базами данных, например Oracle. В качестве связанных серверов можно настроить источники данных OLE DB многих типов, в том числе Microsoft Access и Excel. Концепция связанных серверов имеет следующие преимущества.

  • Возможность доступа к данным за пределами SQL Server.

  • Возможность осуществлять распределенные запросы, обновления, команды и транзакции на разнородных источниках данных по всему предприятию.

  • Возможность единообразной адресации разных источников данных.

Можно настроить связанный сервер, используя инструкцию Среда SQL Server Management Studio или sp_addlinkedserver (Transact-SQL). Поставщики OLE DB существенно различаются по типу и количеству необходимых параметров. Например, некоторые поставщики требуют предоставления контекста безопасности для соединения с помощью sp_addlinkedsrvlogin (Transact-SQL). Некоторые поставщики OLE DB разрешают использовать SQL Server для обновления данных в источнике данных OLE DB. Другие предоставляют доступ к данным только для чтения. Для информации о каждом поставщике OLE DB обратитесь к документации об этом поставщике OLE DB.

Компоненты связанных серверов

Определение связанного сервера задает следующие объекты.

  • Поставщик OLE DB

  • Источник данных OLE DB

Поставщиком OLE DB является динамическая библиотека, осуществляющая управление и взаимодействие с определенными источниками данных. Источник данных OLE DB определяет конкретную базу данных, доступ к которой выполняется через интерфейс OLE DB. Хотя источники данных, запросы к которым выполняются с помощью определений связанных серверов, являются обычными базами данных, существуют поставщики OLE DB для разнообразных файлов и форматов файлов. Сюда входят текстовые файлы, данные электронных таблиц и результаты поиска полнотекстового содержимого.

Поставщик OLE DB для собственного клиента Microsoft SQL Server (PROGID: SQLNCLI11) является официальным поставщиком OLE DB для SQL Server.

ПримечаниеПримечание

Распределенные запросы сервера SQL Server предназначены для работы с поставщиком OLE DB, реализующим необходимые интерфейсы OLE DB. Однако работа SQL Server проверялась только с поставщиком OLE DB для SQL Server Native Client и некоторыми другими поставщиками.

Подробности настройки связанных серверов

На следующей иллюстрации показаны основы настройки связанных серверов.

Уровень клиента, уровень сервера и уровень сервера баз данных

Обычно связанные серверы используются для обработки распределенных запросов. Если клиентское приложение выполняет распределенный запрос через связанный сервер, SQL Server проводит синтаксический анализ команды и передает запросы поставщику OLE DB. Запрос на набор строк может быть в форме выполнения запроса к поставщику или в форме открытия базовой таблицы из поставщика.

Чтобы источник данных мог вернуть данные при помощи связанного сервера, поставщик OLE DB (динамическая библиотека) для этого источника данных должен присутствовать на том же сервере, что и экземпляр SQL Server.

При использовании поставщика OLE DB стороннего разработчика учетная запись, под которой выполняется служба сервера SQL Server, должна иметь разрешения на чтение и выполнение для каталога и всех его подкаталогов, в котором установлен поставщик.

Управление поставщиками

Имеется набор параметров, определяющих, как SQL Server загружает и использует поставщики OLE DB, заданные в реестре.

Управление определениями связанных серверов

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

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

  • Создайте определение связанного сервера, выполнив процедуру sp_addlinkedserver.

  • Просмотрите сведения о связанных серверах, определенных в конкретном экземпляре SQL Server, выполнив запрос к представлениям системного каталога sys.servers.

  • Удалите определение связанного сервера, выполнив процедуру sp_dropserver. Эта хранимая процедура может также использоваться для удаления удаленного сервера.

Определять связанные серверы можно также в среде Среда SQL Server Management Studio. В обозревателе объектов щелкните правой кнопкой мыши Объекты сервера, выберите Создать и выберите Связанный сервер. Определение связанного сервера можно удалить, щелкнув правой кнопкой мыши имя связанного сервера и выбрав Удалить.

При выполнении распределенного запроса к связанному серверу необходимо указать полное, состоящее из четырех частей имя таблицы для каждого источника данных, к которому выполняется запрос. Это четырехкомпонентное имя должно задаваться в форме linked_server_name.catalog**.schema.**object_name.

ПримечаниеПримечание

Связанные серверы могут быть определены таким образом, чтобы указывать на сервер, на котором они определены (обратная связь). Серверы с обратной связью наиболее полезны для тестирования приложения, в котором используются распределенные запросы в односерверной сети. Серверы, связанные с помощью петлевого адреса, предназначены для тестирования и не поддерживаются во многих операциях, таких как распределенные транзакции.

Связанные задачи

Создание связанных серверов (компонент SQL Server Database Engine)

sp_addlinkedserver (Transact-SQL)

sp_addlinkedsrvlogin (Transact-SQL)

sp_dropserver (Transact-SQL)

См. также

sys.servers (Transact-SQL)

sp_linkedservers (Transact-SQL)