Поделиться через


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

Настройте связанный сервер, чтобы SQL Server Компонент Database Engine мог выполнять команды для источников данных OLE DB за пределами экземпляра SQL Server. Как правило, связанные серверы настраиваются таким образом, чтобы ядро СУБД выполняло инструкцию 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 для разнообразных файлов и форматов файлов. Сюда входят текстовые файлы, данные электронных таблиц и результаты поиска полнотекстового содержимого.

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

Примечание

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

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

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

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

Обычно связанные серверы используются для обработки распределенных запросов. Если клиентское приложение выполняет распределенный запрос через связанный сервер, 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)