Определение источника данных по имени связанного сервера

Изменения: 14 апреля 2006 г.

Чтобы ссылаться на объекты связанного сервера после его определения, в инструкциях Transact-SQL можно использовать полное имя из четырех частей вида linked_server_name**.catalog.**schema.object_name . Эти части определяются следующим образом:

  • linked_server_name
    Связанный сервер, ссылающийся на источник данных OLE DB.
  • catalog
    Каталог источника данных OLE DB, содержащий объект.
  • schema
    Схема каталога, содержащего объект.
  • object_name
    Объект данных в схеме.

Например, следующий запрос ссылается на таблицы Production.Product и Sales.SalesOrderDetails в базе данных AdventureWorks на связанном сервере SEATTLESales:

SELECT p.Name, sod.SalesOrderID

FROM SEATTLESales.AdventureWorks.Production.Product p

INNER JOIN SEATTLESales.AdventureWorks.Sales.SalesOrderDetail sod

ON p.ProductID = sod.ProductID

ORDER BY p.Name ;

В SQL Server идентифицировать поставщика OLE DB и источник данных можно по имени linked_server_name. Параметры catalog, schema и object_name передаются поставщику OLE DB для идентификации конкретного объекта данных. Когда связанный сервер ссылается на экземпляр SQL Server 2005, параметр catalog ссылается на базу данных, а параметр schema — на схему.

В более ранних версиях SQL Server схема являлась владельцем объекта. В SQL Server 2005 схемы существуют независимо от создавшего их пользователя базы данных. Дополнительные сведения о схемах в SQL Server 2005 см. в разделе Отделение пользователей от схем.

При работе с объектами на связанных серверах всегда используйте полные имена. Для таблиц связанных серверов не поддерживается неявное разрешение имени владельца dbo. Поэтому при выполнении запроса без имени схемы произойдет ошибка 7313, даже если связанный сервер является другим экземпляром SQL Server.

Системный администратор может определять, у кого есть доступ к определенным связанным серверам, настроив сопоставление имен входа системной хранимой процедурой sp_addlinkedsrvlogin. Эта хранимая процедура позволяет настраивать имя и пароль удаленного входа для заданного локального входа. Она также позволяет создавать «самосопоставления» с локальными именами входа Windows.

ms190406.security(ru-ru,SQL.90).gifПримечание безопасности.
При подключении к другому источнику данных SQL Server соответствующим образом олицетворяет пользователей для имен входа, использующих проверку подлинности Windows; однако SQL Server не может олицетворять пользователей для входных имен, использующих проверку подлинности SQL Server. Поэтому для имен входа с проверкой подлинности SQL Server сервер SQL Server может получать доступ к другим источникам данных, например, файлам или нереляционным источникам вроде каталога Active Directory, используя контекст безопасности учетной записи Windows, от имени которой запущена служба SQL Server. Это может открыть доступ таким именам входа к другому источнику данных, для которых у них нет разрешений, но они есть у учетной записи, от имени которой запущена служба SQL Server. Эту возможность следует учитывать при предоставлении доступа к связанному серверу имени входа, использующему проверку подлинности SQL Server, при помощи хранимой процедуры sp_addlinkedsrvlogin.

См. также

Основные понятия

Доступ к внешним данным
Распределенные запросы

Другие ресурсы

sp_addlinkedsrvlogin (Transact-SQL)
OPENQUERY (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

14 апреля 2006 г.

Новое содержимое:
  • Добавлен пример синтаксиса.