Criando servidores vinculados (Mecanismo de Banco de Dados do SQL Server)
A criação de um servidor vinculado permite o trabalho com dados de várias origens. O servidor vinculado não precisa ser outra instância do SQL Server, mas esse é um cenário comum. Este tópico mostra como criar um servidor vinculado e acessar dados de outro SQL Server.
Neste tópico
Antes de começar:
Plano de fundo
Segurança
Exemplos:
SQL Server Management Studio
Transact-SQL
Acompanhamento: tarefas a serem executadas após a criação de um servidor vinculado
Plano de fundo
Um servidor vinculado permite acesso a consultas distribuídas e heterogêneas em fontes de dados OLE DB. Depois que um servidor vinculado é criado, as consultas distribuídas podem ser executadas nesse servidor, e as consultas podem unir tabelas de mais de uma fonte de dados. Se o servidor vinculado estiver definido como uma instância do SQL Server, poderão ser executados procedimentos armazenados remotos.
Os recursos e argumentos necessários do servidor vinculado podem variar significativamente. Os exemplos neste tópico fornecem um exemplo típico, mas nem todas as opções são descritas. Para obter mais informações, consulte sp_addlinkedserver (Transact-SQL).
Segurança
Permissões
Requer a permissão ALTER ANY LINKED SERVER no servidor.
[Início]
Como criar um servidor vinculado
Você pode usar qualquer um dos seguintes itens:
SQL Server Management Studio
Transact-SQL
Usando o SQL Server Management Studio
Para criar um servidor vinculado para outra instância do SQL Server usando o SQL Server Management Studio
No SQL Server Management Studio, abra o Pesquisador de Objetos, expanda Objetos de Servidor, clique com o botão direito do mouse em Servidores Vinculados e clique em Novo Servidor Vinculado.
Na página Geral, na caixa Servidor vinculado, digite o nome da instância do SQL Server à qual você está se vinculando.
Observação Se a instância do SQL Server for a instância padrão, digite o nome do computador que hospeda a instância do SQL Server. Se o SQL Server for uma instância nomeada, digite o nome do computador e o nome da instância, como Accounting\SQLExpress.
Na área Tipo de servidor, selecione SQL Server para indicar que o servidor vinculado é outra instância do SQL Server.
Na página Segurança, especifique o contexto de segurança que será usado quando o SQL Server original se conectar ao servidor vinculado. Em um ambiente de domínio onde os usuários se conectam usando seus logons de domínio, a melhor opção é geralmente selecionar Serão feitas usando o contexto de segurança atual do logon. Quando os usuários se conectam ao SQL Server original usando um logon do SQL Server, a melhor opção geralmente é selecionar Usando este contexto de segurança e, em seguida, fornecer as credenciais necessárias para autenticação no servidor vinculado.
Clique em OK.
[Início]
Usando Transact-SQL
Para criar um servidor vinculado usando Transact-SQL, use as instruções sp_addlinkedserver (Transact-SQL)CREATE LOGIN (Transact-SQL) e sp_addlinkedsrvlogin (Transact-SQL).
Para criar um servidor vinculado para outra instância do SQL Server usando Transact-SQL
Em Editor de Consultas, insira o comando Transact-SQL a seguir para vincular-se a uma instância do SQL Server denominada SRVR002\ACCTG:
USE [master] GO EXEC master.dbo.sp_addlinkedserver @server = N'SRVR002\ACCTG', @srvproduct=N'SQL Server' ; GO
Execute o código a seguir para configurar o servidor vinculado para usar as credenciais de domínio do logon que está usando o servidor vinculado.
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'SRVR002\ACCTG', @locallogin = NULL , @useself = N'True' ; GO
[Início]
Acompanhamento: tarefas a serem executadas após a criação de um servidor vinculado
Para testar o servidor vinculado
Execute o código a seguir para testar a conexão com o servidor vinculado. Este exemplo retorna os nomes dos bancos de dados no servidor vinculado.
SELECT name FROM [SRVR002\ACCTG].master.sys.sysdatabases ; GO
Gravando uma consulta que une tabelas de um servidor vinculado
Use nomes de quatro partes para referir-se a um objeto em um servidor vinculado. Execute o código a seguir para retornar uma lista de todos os logons no servidor local e seus logons correspondentes no servidor vinculado.
SELECT local.name AS LocalLogins, linked.name AS LinkedLogins FROM master.sys.server_principals AS local LEFT JOIN [SRVR002\ACCTG].master.sys.server_principals AS linked ON local.name = linked.name ; GO
Quando NULL é retornado para o logon do servidor vinculado, ele indica que o logon não existe no servidor vinculado. Esses logons não poderão usar o servidor vinculado, a menos que o servidor vinculado seja configurado para passar um contexto de segurança diferente ou o servidor vinculado aceite conexões anônimas.
[Início]