Como Acessar Dados Remotos com Linked Server no SQL Server

O Prof. Landry Duailibe é especialista em Microsoft SQL Server desde 1999, Microsoft Certified Trainer, professor universitário e criador do canal SQL Server Expert no YouTube, onde compartilha conteúdo técnico semanal para DBAs e profissionais de dados. Já ajudou milhares de alunos a evoluírem suas habilidades com SQL Server e conquistarem melhores oportunidades na área de dados.
Em ambientes corporativos, é comum a necessidade de consultar dados que estão em outros servidores. Em vez de exportar e importar arquivos ou montar pipelines complexos, o SQL Server oferece uma solução prática: o Linked Server.
Neste post, você vai aprender o que é um Linked Server, como configurá-lo corretamente, boas práticas de segurança e como utilizá-lo em consultas entre diferentes servidores.
🔗 O que é um Linked Server?
O Linked Server permite que você conecte seu SQL Server a outras fontes de dados, incluindo:
Outros servidores SQL Server
Instâncias Oracle, MySQL, PostgreSQL
Fontes OLE DB, como Excel ou Access
Com ele, é possível executar SELECT, INSERT, UPDATE e DELETE em bancos externos, como se fossem tabelas locais.
⚙️ Como Configurar um Linked Server
1. Criando um Linked Server via SSMS
Acesse Object Explorer > Server Objects > Linked Servers
Clique com o botão direito em Linked Servers > New Linked Server...
Informe:
Nome do servidor vinculado (
LinkedServerName)Tipo do servidor: por exemplo, SQL Server para conexões entre instâncias do SQL Server
Provedor de dados (ex:
SQLNCLI11,MSOLEDBSQL)String de conexão e autenticação
2. Exemplo via T-SQL
EXEC sp_addlinkedserver
@server = 'ServidorRemoto',
@srvproduct = '',
@provider = 'SQLNCLI11',
@datasrc = 'NOME_DO_SERVIDOR';
EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'ServidorRemoto',
@useself = 'false',
@locallogin = NULL,
@rmtuser = 'usuario_remoto',
@rmtpassword = 'senha_remota';
📥 Como Consultar Dados de um Linked Server
Após configurado, você pode consultar os dados com a seguinte sintaxe:
SELECT *
FROM ServidorRemoto.NomeDoBanco.dbo.NomeDaTabela
Exemplo prático:
SELECT c.CustomerID, c.Name, o.OrderDate, o.TotalDue
FROM ServidorRemoto.AdventureWorks.dbo.Customer c
JOIN ServidorRemoto.AdventureWorks.dbo.SalesOrderHeader o
ON c.CustomerID = o.CustomerID
WHERE o.OrderDate >= '2023-01-01'
🔒 Segurança e Permissões
Algumas práticas recomendadas ao usar Linked Servers:
Use autenticação específica para limitar privilégios.
Nunca utilize contas com permissões de sysadmin.
Teste se a opção de RPC Out está habilitada para executar
EXECremotos.Restrinja acessos com firewalls e roles.
🚨 Cuidados de Performance
Linked Servers são convenientes, mas exigem atenção:
Filtros devem ser aplicados o mais cedo possível. Evite trazer todos os dados remotos para depois filtrar localmente.
Evite joins entre servidores diferentes. Prefira trazer dados para uma tabela temporária local antes.
Avalie o uso de OPENQUERY quando precisar otimizar queries remotas:
SELECT *
FROM OPENQUERY(ServidorRemoto,
'SELECT CustomerID, Name FROM AdventureWorks.dbo.Customer WHERE TerritoryID = 1')
✅ Quando Usar Linked Server?
Para integrações rápidas entre sistemas legados.
Em relatórios consolidados que precisam unir dados de múltiplos bancos.
Em ETLs simples dentro do SQL Server.
Mas lembre-se: para cargas intensas ou integrações críticas, considere alternativas como Integration Services (SSIS), Azure Data Factory ou replicação.
Se você está buscando dominar o SQL Server em nível profissional, o Linked Server é um recurso que não pode faltar no seu arsenal. Continue acompanhando o blog SQL Server Expert para mais conteúdos como esse!
Fui, mas volto com mais SQL Server em breve!
✍️ Sobre o autor
O Prof. Landry é especialista em Microsoft SQL Server desde 1999, Microsoft Trainer, Professor Universitário e criador do canal SQL Server Expert no YouTube, com conteúdo técnico semanal para DBAs e profissionais de dados.
🚀 Quer aprender mais sobre SQL Server?
👉 Me acompanhe no LinkedIn e inscreva-se no canal para não perder nenhuma dica prática!






