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

  1. 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.

  2. Na página Geral, na caixa Servidor vinculado, digite o nome da instância do SQL Server à qual você está se vinculando.

    ObservaçãoObservaçã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.

  3. Na área Tipo de servidor, selecione SQL Server para indicar que o servidor vinculado é outra instância do SQL Server.

  4. 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.

  5. 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

  1. 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
    
  2. 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]