Identificando uma fonte de dados usando um nome de servidor vinculado

Após a definição de um servidor vinculado, para fazer referência a objetos de dados naquele servidor vinculado, é possível usar um nome de quatro partes no formulário linked_server_name**.catalog.**schema.object_name em instruções Transact-SQL. As partes são definidas como:

  • linked_server_name
    Servidor vinculado que faz referência à fonte de dados OLE DB.

  • catalog
    Catalogo na fonte de dados OLE DB que contém o objeto.

  • schema
    Esquema no catálogo que contém o objeto.

  • object_name
    Objeto de dados no esquema.

Por exemplo, a consulta a seguir faz referência às tabelas Production.Product e Sales.SalesOrderDetails no banco de dados AdventureWorks2008R2 no servidor vinculado 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 ;

O SQL Server usa linked_server_name para identificar o provedor OLE DB e a fonte de dados. Os parâmetros catalog, schema e object_name são passados ao provedor OLE DB para identificar um objeto de dados específico. Quando o servidor vinculado faz referência a uma instância do SQL Server, o catalog faz referência a um banco de dados e o schema faz referência a um esquema.

Em versões anteriores do SQL Server, um esquema é o proprietário de um objeto. No SQL Server, os esquemas existem independentemente do usuário do banco de dados que os cria. Para obter mais informações sobre esquemas, no SQL Server, consulte Separação do esquema de usuário.

Sempre use nomes completamente qualificados ao trabalhar com objetos em servidores vinculados. Não há nenhum suporte para resolução implícita para o nome do proprietário do dbo para tabelas em servidores vinculados. Portanto uma consulta sem um nome de esquema gera um erro 7313, mesmo quando o servidor vinculado é outra instância do SQL Server.

O administrador do sistema pode controlar quem pode acessar um servidor vinculado específico configurando mapeamentos de logon usando o procedimento armazenado do sistema sp_addlinkedsrvlogin. Esse procedimento armazenado permite configurar um logon remoto e uma senha para um logon local específico. O procedimento armazenado também permite configurar mapeamentos "próprios" para logons autenticados do Windows.

Observação sobre segurançaObservação sobre segurança

Ao conectar a uma outra fonte de dados, o SQL Server representa o logon apropriadamente para logons autenticados do Windows. No entanto o SQL Server não pode representar logons autenticados do SQL Server. Portanto, para logons autenticados do SQL Server, o SQL Server pode acessar outra fonte de dados, como arquivos ou fontes de dados não relacionais, como o Active Directory, usando o contexto de segurança da conta do Windows sob a qual o serviço do SQL Server está sendo executado. Potencialmente, isso pode fornecer acesso a esses logons a uma outra fonte de dados para a qual eles não têm permissões, mas a conta em que o serviço do SQL Server está sendo executada realmente tem permissões. Essa possibilidade deve ser considerada quando acesso a um logon autenticado do SQL Server a um servidor vinculado é fornecido usando sp_addlinkedsrvlogin.