Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения: 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 .
Связанные серверы с источниками Microsoft Access и Excel поддерживаются только корпорацией Майкрософт при использовании 32-разрядного поставщика OLEDB.Microsoft.JET.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 (ранее — Azure Active Directory).
Чтобы использовать задания агента 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.
- Требуется допустимый подписанный ЦС сертификат с соответствием FQDN.
-
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 Managed Studio (SSMS) параметр "Другие источники данных " необходимо использовать для настройки параметров шифрования связанного сервера вручную.
Дополнительные сведения о OLE DB 19, шифровании и проверке сертификатов, включая поведение сертификатов и сертификатов доверия для OLE DB 19, см. в разделе "Шифрование и проверка сертификатов в OLE DB".