none
Criação de Linked Server Local RRS feed

  • Pergunta

  • Como consigo criar um linked server num servidor para uma base de dados local?

    Dá-me este erro:

    OLE DB provider "SQLNCLI10" for linked server "SQLEXPRESSTESTE" returned message "Login timeout expired".
    OLE DB provider "SQLNCLI10" for linked server "SQLEXPRESSTESTE" returned message "A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.".
    Msg 65535, Level 16, State 1, Line 0
    SQL Server Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF]. 

    Já tentei modificar as portas e a firewall do windows.

    quarta-feira, 5 de fevereiro de 2014 14:45

Respostas

  • Carla,

    O Linked Server deve ser criado no local de execução.

    Criação do Linked Server:

    USE [master]
    GO
    EXEC master.dbo.sp_addlinkedserver @server = N'[IP OU HOSTNAME DO DESTINO]', @srvproduct=N'SQL Server'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'collation compatible', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'data access', @optvalue=N'true'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'dist', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'pub', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'rpc', @optvalue=N'true'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'rpc out', @optvalue=N'true'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'sub', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'connect timeout', @optvalue=N'0'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'collation name', @optvalue=null
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'lazy schema validation', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'query timeout', @optvalue=N'0'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'use remote collation', @optvalue=N'true'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'remote proc transaction promotion', @optvalue=N'true'
    GO
    USE [master]
    GO
    EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'[IP OU HOSTNAME]', @locallogin = NULL , @useself = N'False', 
    @rmtuser = N'USAURIO DO SERVIDOR DE DESTINO', @rmtpassword = N'SENHA DO USUARIO'
    GO

    • Marcado como Resposta Giovani Cr quarta-feira, 12 de fevereiro de 2014 13:40
    quarta-feira, 5 de fevereiro de 2014 17:00
  • Carla,

    É necessário criar o objeto linkedserver e mapear o usuário com acesso no servidor remoto. Segue abaixo um exemplo para criação de um linkedserver:

    EXEC sp_addlinkedserver   
       @server=N'NomeDoSeuLinkedServer', 
       @srvproduct=N'',
       @provider=N'SQLNCLI', 
       @datasrc=N'127.0.0.1\SQLEXPRESSTESTE';
    GO
    sp_addlinkedsrvlogin @rmtsrvname ='NomeDoSeuLinkedServer'
    , @useself = 'FALSE' 
    , @locallogin = null 
    , @rmtuser ='sa'  --Usuário no servidor remoto
    , @rmtpassword = '123456'  --Senha no servidor remoto
    GO

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    • Sugerido como Resposta Junior Galvão - MVPMVP sexta-feira, 7 de fevereiro de 2014 17:16
    • Marcado como Resposta Giovani Cr quarta-feira, 12 de fevereiro de 2014 13:40
    quarta-feira, 5 de fevereiro de 2014 17:05
    Moderador

Todas as Respostas

  • Carla,

    O Linked Server deve ser criado no local de execução.

    Criação do Linked Server:

    USE [master]
    GO
    EXEC master.dbo.sp_addlinkedserver @server = N'[IP OU HOSTNAME DO DESTINO]', @srvproduct=N'SQL Server'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'collation compatible', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'data access', @optvalue=N'true'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'dist', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'pub', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'rpc', @optvalue=N'true'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'rpc out', @optvalue=N'true'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'sub', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'connect timeout', @optvalue=N'0'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'collation name', @optvalue=null
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'lazy schema validation', @optvalue=N'false'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'query timeout', @optvalue=N'0'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'use remote collation', @optvalue=N'true'
    GO
    EXEC master.dbo.sp_serveroption @server=N'[IP OU HOSTNAME]', @optname=N'remote proc transaction promotion', @optvalue=N'true'
    GO
    USE [master]
    GO
    EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'[IP OU HOSTNAME]', @locallogin = NULL , @useself = N'False', 
    @rmtuser = N'USAURIO DO SERVIDOR DE DESTINO', @rmtpassword = N'SENHA DO USUARIO'
    GO

    • Marcado como Resposta Giovani Cr quarta-feira, 12 de fevereiro de 2014 13:40
    quarta-feira, 5 de fevereiro de 2014 17:00
  • Carla,

    É necessário criar o objeto linkedserver e mapear o usuário com acesso no servidor remoto. Segue abaixo um exemplo para criação de um linkedserver:

    EXEC sp_addlinkedserver   
       @server=N'NomeDoSeuLinkedServer', 
       @srvproduct=N'',
       @provider=N'SQLNCLI', 
       @datasrc=N'127.0.0.1\SQLEXPRESSTESTE';
    GO
    sp_addlinkedsrvlogin @rmtsrvname ='NomeDoSeuLinkedServer'
    , @useself = 'FALSE' 
    , @locallogin = null 
    , @rmtuser ='sa'  --Usuário no servidor remoto
    , @rmtpassword = '123456'  --Senha no servidor remoto
    GO

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    • Sugerido como Resposta Junior Galvão - MVPMVP sexta-feira, 7 de fevereiro de 2014 17:16
    • Marcado como Resposta Giovani Cr quarta-feira, 12 de fevereiro de 2014 13:40
    quarta-feira, 5 de fevereiro de 2014 17:05
    Moderador