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


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

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

  • linked_server_name
    Связанный сервер, ссылающийся на источник данных OLE DB.

  • catalog
    Каталог источника данных OLE DB, содержащий объект.

  • schema
    Схема каталога, содержащего объект.

  • object_name
    Объект данных в схеме.

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

SELECT p.Name, sod.SalesOrderID

FROM SEATTLESales.AdventureWorks2008R2.Production.Product p

INNER JOIN SEATTLESales.AdventureWorks2008R2.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, параметр catalog ссылается на базу данных, а параметр schema — на схему.

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

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

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

Примечание по безопасностиПримечание по безопасности

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