Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения: SQL Server Управляемый экземпляр SQL Azure
Связанные серверы позволяют подсистеме СУБД SQL Server и Управляемому экземпляру SQL Azure считывать данные из удаленных источников данных и выполнять команды на удаленных серверах баз данных (например, источниках данных OLE DB) за пределами экземпляра SQL Server. Как правило, вы настраиваете связанные серверы, чтобы ядро СУБД выполняло инструкцию Transact-SQL, которая включает таблицы в другом экземпляре SQL Server или другой продукт базы данных, например Oracle. Вы можете настроить множество типов источников данных OLE DB в качестве связанных серверов, включая сторонних поставщиков баз данных и Azure Cosmos DB.
Примечание.
Связанные серверы доступны в SQL Server и Управляемый экземпляр SQL Azure (с некоторыми ограничениями). Связанные серверы недоступны в Базе данных SQL Azure.
В каких случаях следует использовать связанные серверы?
Связанные серверы позволяют реализовать распределенные базы данных, которые могут извлекать и обновлять данные в других базах данных. Используйте связанные серверы в сценариях, где необходимо реализовать сегментирование баз данных без создания пользовательского кода приложения или непосредственной загрузки из удаленных источников данных. Концепция связанных серверов имеет следующие преимущества.
Возможность доступа к данным извне SQL Server.
Возможность осуществлять распределенные запросы, обновления, команды и транзакции на разнородных источниках данных по всему предприятию.
Возможность единообразной адресации разных источников данных.
Связанный сервер можно настроить с помощью SQL Server Management Studio или с помощью инструкции sp_addlinkedserver . Поставщики OLE DB существенно различаются по типу и количеству необходимых параметров. Например, некоторые поставщики требуют предоставления контекста безопасности для подключения с помощью sp_addlinkedsrvlogin. Некоторые поставщики OLE DB позволяют SQL Server обновлять данные в источнике OLE DB. Другие предоставляют доступ к данным только для чтения. Для информации о каждом поставщике OLE DB обратитесь к документации об этом поставщике OLE DB.
Компоненты связанных серверов
Определение связанного сервера задает следующие объекты.
Поставщик OLE DB
Источник данных OLE DB
Поставщиком OLE DB является динамическая библиотека, осуществляющая управление и взаимодействие с определенными источниками данных. Источник данных OLE DB определяет конкретную базу данных, доступ к которую можно получить с помощью OLE DB. Хотя источники данных, запрашиваемые с помощью определений связанного сервера, обычно являются базами данных, поставщики OLE DB существуют для различных файлов и форматов файлов. К этим файлам относятся обычный текст, данные электронной таблицы и результаты поиска полнотекстового содержимого.
Начиная с SQL Server 2019 (15.x), драйвер Microsoft OLE DB для SQL Server (PROGID: MSOLEDBSQL) является поставщиком OLE DB по умолчанию. В более ранних версиях собственный клиент SQL Server (PROGID: SQLNCLI11) был поставщиком OLE DB по умолчанию.
Внимание
Собственный клиент SQL Server (часто сокращенный SNAC) был удален из SQL Server 2022 (16.x) и SQL Server Management Studio 19 (SSMS). Поставщик OLE DB собственного клиента SQL Server (SQLNCLI или SQLNCLI11) и устаревший поставщик Microsoft OLE DB для SQL Server (SQLOLEDB) не рекомендуется для новой разработки. Перейдите на новый драйвер Microsoft OLE DB (MSOLEDBSQL) для SQL Server .
Корпорация Майкрософт поддерживает связанные серверы к источникам Excel и Access только при использовании 32-разрядного поставщика Microsoft.JET.OLEDB.4.0 OLE DB.
Примечание.
Распределенные запросы SQL Server работают с любым поставщиком OLE DB, реализующим необходимые интерфейсы OLE DB. Однако SQL Server был протестирован с поставщиком OLE DB по умолчанию.
Сведения о настройке связанных серверов
На следующей иллюстрации показаны основы настройки связанных серверов.
Как правило, связанные серверы используются для обработки распределенных запросов. Когда клиентское приложение выполняет распределенный запрос через связанный сервер, SQL Server анализирует команду и отправляет запросы в OLE DB. Запрос набора строк может быть в виде выполнения запроса к поставщику или открытия базовой таблицы от поставщика.
Чтобы источник данных возвращал данные через связанный сервер, поставщик OLE DB (DLL) для этого источника данных должен присутствовать на том же сервере, что и экземпляр SQL Server.
Связанные серверы поддерживают сквозную проверку подлинности Active Directory при использовании полного делегирования. Начиная с SQL Server 2017 (14.x) CU17, сквозная проверка подлинности с ограниченным делегированием также поддерживается; однако ограниченное делегирование на основе ресурсов не поддерживается.
Внимание
При использовании поставщика 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>.
Ссылки на временные объекты всегда разрешаются локальному экземпляру tempdb , если применимо, даже при префиксе с именем связанного сервера.
Вы можете определить связанные серверы так, чтобы они указывали обратно на сервер, на котором были определены. Серверы с обратной связью наиболее полезны для тестирования приложения, в котором используются распределенные запросы в односерверной сети. Связанные серверы с обратной связью предназначены для тестирования и не поддерживаются многими операциями, такими как распределенные транзакции.
Связанные серверы с Управляемым экземпляром SQL Azure
Связанные серверы управляемого экземпляра SQL Azure поддерживают аутентификацию SQL и аутентификацию с использованием Microsoft Entra ID.
Чтобы использовать задания агента SQL в Управляемый экземпляр SQL Azure для запроса удаленного сервера через связанный сервер, используйте sp_addlinkedsrvlogin для создания сопоставления с именем входа на локальном сервере с именем входа на удаленном сервере. Когда задание агента SQL подключается к удаленному серверу через связанный сервер, он выполняет запрос T-SQL в контексте удаленного входа. Дополнительные сведения см. в заданиях агента SQL с Управляемый экземпляр SQL Azure.
Проверка подлинности Microsoft Entra
Два поддерживаемых режима проверки подлинности Microsoft Entra: управляемое удостоверение и сквозная передача. Используйте проверку подлинности управляемого удостоверения, чтобы разрешить локальным учетным записям запрашивать удаленные связанные серверы. Используйте сквозную проверку подлинности, чтобы разрешить субъекту, имеющему возможность аутентификации с помощью локального экземпляра, получить доступ к удаленному экземпляру через связанный сервер.
Чтобы использовать сквозную проверку подлинности Microsoft Entra для связанного сервера в Управляемый экземпляр SQL Azure, необходимо выполнить следующие предварительные требования:
- Тот же субъект добавляется в качестве имени входа на удаленном сервере.
- Оба экземпляра являются членами группы доверия SQL.
Примечание.
Существующие определения связанных серверов, настроенных для сквозного режима, поддерживают проверку подлинности Microsoft Entra. Единственным требованием является добавление управляемого экземпляра SQL в группу доверия сервера.
Следующие ограничения применяются к проверке подлинности Microsoft Entra для связанных серверов в Управляемый экземпляр SQL Azure:
- Проверка подлинности Microsoft Entra не поддерживается для управляемых экземпляров SQL в разных клиентах Microsoft Entra.
- Проверка подлинности Microsoft Entra для связанных серверов поддерживается только с драйвером OLE DB версии 18.2.1 и выше.
SQL Server 2025 и MSOLEDBSQL версии 19
Начиная с SQL Server 2025 (17.x), поставщик MSOLEDBSQL использует Microsoft OLE DB Driver 19 по умолчанию. В этом обновленном драйвере представлены значительные улучшения безопасности, включая поддержку TDS 8.0 и TLS 1.3.
TDS 8.0 повышает безопасность, добавив новый параметр шифрования и введя критическое изменение: Encryption параметр больше не является необязательным. Необходимо указать его в строке подключения при выборе другого экземпляра SQL Server.
Примечание.
Без параметра Encrypt связанные серверы в SQL Server 2025 (17.x) по умолчанию используют Encrypt=Mandatory и требуют действительного сертификата. Подключения без допустимого сертификата завершаются ошибкой.
Параметр Encryption предлагает три отдельных параметра:
-
Yes, или , илиTrueMandatory -
No, или , илиFalseOptional Strict
Этот Strict параметр требует использования TDS 8.0 и требует сертификата сервера для безопасных подключений. Для Yes/True/Mandatory, ожидается доверенный сертификат. Самозаверяющий сертификат нельзя использовать.
| Версия OLE DB | Параметр шифрования | Возможные значения | Значение по умолчанию |
|---|---|---|---|
| OLE DB 18 | Необязательный |
Trueили , Mandatory или FalseNo |
No |
| OLE DB 19 | Required |
Noили , False или YesMandatory( Strict новое) |
Yes |
Параметр TrustServerCertificate поддерживается, но не рекомендуется. Настройка сертификата сервера доверия для Yes отключения проверки сертификата, ослабляя безопасность зашифрованных подключений. Чтобы использовать сертификат сервера доверия , клиент также должен включить его в реестре компьютеров. Сведения о включении сертификата сервера доверия см. в разделе "Параметры реестра". Параметр TrustServerCertificate=Yes не рекомендуется использовать для рабочих сред.
При использовании Encrypt=False или Encrypt=Optional:
- Сертификат не требуется.
- Если указан доверенный сертификат, драйвер не проверяет его.
- Подключение не предоставляет никакого шифрования.
Если вы используете Encrypt=True или Encrypt=Mandatoryне используете TrustServerCertificate=Yes:
- Для подключения требуется действительный подписанный ЦС сертификат.
- Сертификат должен соответствовать полному домену сервера.
- Если альтернативное имя в сертификате отличается от имени узла SQL Server,
HostNameInCertificateнеобходимо задать полное доменное имя. - Сертификат должен быть установлен в хранилище доверенных корневых центров сертификации на клиентском компьютере.
При использовании Encrypt=Strict:
- Подключение применяет TDS 8.0.
- Для подключения требуется допустимый сертификат, подписанный ЦС, с соответствием полного доменного имени.
-
HostNameInCertificateнеобходимо задать полное доменное имя. - Сертификат должен быть доверен клиентской системой.
-
TrustServerCertificateконфигурация не поддерживается. Допустимый сертификат должен присутствовать.
| Параметр «Доверять сертификату сервера» на клиенте | Строка соединения или атрибут соединения «Надежный сертификат сервера» | Проверка сертификата |
|---|---|---|
| 0 |
No (по умолчанию) |
Да |
| 0 | Yes |
Да |
| 1 |
No (по умолчанию) |
Да |
| 1 | Yes |
нет |
Эти параметры необходимо правильно указать в строке подключения при настройке подключений к связанному серверу, чтобы обеспечить совместимость и безопасность с новым драйвером.
Обновление для предыдущих версий OLEDB
Применимо к: SQL Server 2025 (17.x) и более поздним версиям
При переходе с предыдущих выпусков SQL Server на SQL Server 2025 (17.x) с Microsoft OLE DB Driver 19, существующие конфигурации связанного сервера могут завершиться ошибкой. Разные значения по умолчанию для параметра шифрования могут привести к сбою, если не указать действительный сертификат.
Кроме того, можно повторно создать связанный сервер и включить Encrypt=Optional его в строку подключения. Если вы не можете изменить конфигурацию связанного сервера, включите флаг 17600 трассировки для поддержания поведения OLE DB 18 и значений по умолчанию.
В мастере создания связанного сервера SQL Server Management Studio (SSMS) используйте параметр "Другие источники данных ", чтобы вручную настроить параметры шифрования связанного сервера.
Дополнительные сведения о OLE DB 19, шифровании и проверке сертификатов, включая поведение сертификатов и сертификатов доверия для OLE DB 19, см. в разделе "Шифрование и проверка сертификатов в OLE DB".