Vinculando servidores

Uma configuração de servidores vinculados permite ao SQL Server executar comandos em relação a fontes de dados de OLE DB em servidores remotos. Servidores vinculados têm as seguintes vantagens:

  • Acesso a servidor remoto.

  • A capacidade de emitir consultas, atualizações, comandos e transações distribuídas em fontes de dados heterogêneas em toda a empresa.

  • A capacidade de endereçar de forma semelhante diversas fontes de dados.

Componentes de servidores vinculados

Uma definição de servidor vinculado especifica os seguintes objetos:

  • Um provedor de OLE DB

  • Uma fonte de dados de OLE DB

Um provedor de OLE DB é uma DLL que gerencia e interage com uma fonte de dados específica. Uma fonte de dados de OLE DB identifica o banco de dados específico que pode ser acessado por meio de OLE DB. Embora fontes de dados consultadas através de definições de servidores vinculados sejam, ordinariamente, bancos de dados, existem provedores de OLE DB para uma variedade de arquivos e formatos de arquivo. Eles compreendem arquivos de texto, dados de planilha e resultados de pesquisas de conteúdo de texto completo.

O provedor de OLE DB MicrosoftSQL Server Native Client (PROGID: SQLNCLI10) é o provedor de OLE DB oficial do SQL Server.

ObservaçãoObservação

As consultas distribuídas do SQL Server foram criadas de modo a funcionar com qualquer provedor de OLE DB que implemente as interfaces de OLE DB exigidas. Porém, o SQL Server foi testado apenas quanto ao provedor de OLE DB SQL Server Native Client e alguns outros. Para obter mais informações, consulte Provedores OLE DB testados com o SQL Server.

Detalhes sobre servidores vinculados

A ilustração a seguir mostra os fundamentos básicos de uma configuração de servidores vinculados.

Camadas de cliente, de servidor e de servidor de banco de dados

Normalmente, servidores vinculados são usados para manipular consultas distribuídas. Quando um aplicativo cliente executa uma consulta distribuída através de um servidor vinculado, o SQL Server analisa o comando e envia solicitações ao OLE DB. Essa solicitação de conjunto de linhas pode ser a execução de uma consulta em relação ao provedor ou a abertura de uma tabela base do provedor.

Para que uma fonte de dados retorne dados através de um servidor vinculado, seu provedor de OLE DB (DLL) deve estar presente no mesmo servidor da instância do SQL Server.

Quando é usado um provedor de OLE DB de terceiros, a conta sob a qual o serviço do SQL Server é executado deve ter permissões de leitura e execução no diretório e em todos os subdiretórios no qual o provedor está instalado.

Gerenciando provedores

Há uma série de opções que controlam como o SQL Server carrega e usa os provedores de OLE DB especificados no registro. Para obter mais informações, consulte Configurando provedores de OLE DB para consultas distribuídas.

Gerenciando definições de servidores vinculados

Ao configurar um servidor vinculado, registre as informações de conexão e de fonte de dados com o SQL Server. Depois de registrada, a fonte de dados pode ser chamada por um único nome lógico.

É possível usar procedimentos armazenados e exibições do catálogo para gerenciar definições de servidores vinculados:

  • Crie uma definição de servidor vinculado, executando sp_addlinkedserver.

  • Exiba informações sobre os servidores vinculados definidos em uma instância específica do SQL Server, executando uma consulta em relação às exibições do catálogo do sistema sys.servers.

  • Exclua uma definição de servidor vinculado, executando sp_dropserver. Você também pode usar esse procedimento armazenado para remover um servidor remoto.

Também é possível definir servidores vinculados por meio do SQL Server Management Studio. No Pesquisador de Objetos, clique com o botão direito do mouse em Objetos de Servidor, selecione Novo e, em seguida, Servidor Vinculado. Você pode excluir uma definição de servidor vinculado clicando com o botão direito do mouse no nome do servidor vinculado e selecionando Excluir.

Ao executar uma consulta distribuída em relação a um servidor vinculado, inclua um nome de tabela de quatro partes totalmente qualificado para cada fonte de dados a consultar. Esse nome de quatro partes deve estar na forma linked_server_name.catalog**.schema.**object_name. Para obter mais informações, consulte Consultas distribuídas.