ID do artigo: 321822 - Última revisão: terça-feira, 13 de abril de 2004 - Revisão: 3.1

COMO: Replicar entre computadores que estejam executando o SQL Server em domínios não-confiáveis ou pela internet

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sumário


Nesta tarefa


Configurar a replicação entre dois computadores que estejam executando o SQL Server

Considere os dois problemas a seguir ao configurar a replicação entre dois computadores que estejam executando o SQL Server.

Contexto de segurança do agente de replicação

Você pode configurar o agente de replicação (incluindo o Agente Leitor de Log, Agente de Mesclagem, Agente de Distribuição e o Agente Instantâneo):
  • Represente a conta do SQL Server Agent no servidor local (uma conexão confiável).

    -ou-
  • Use a Autenticação do SQL Server.
O arquivo executável para o agente (incluindo Logread.exe e Replmerg.exe) é executado no contexto da conta do SQL Server Agent do servidor em que o agente está em execução. As duas opções anteriores determinam como os agentes de replicação se conectam ao serviço do SQL Server no servidor de destino. Essas opções não controlam o modo como a comunicação ocorre no nível do sistema operacional. Ao compreender que essas opções não controlam a comunicação nesse nível, você poderá solucionar muitos problemas de segurança que ocorrem durante a instalação da replicação.

Biblioteca virtual do cliente padrão

Iniciando com o SQL Server 2000 (Microsoft Data Access Component [MDAC] 2.6), a Biblioteca Virtual do cliente padrão é configurada para TCP/IP. Em versões anteriores do SQL Server, a Biblioteca Virtual do cliente padrão é configurada para pipes nomeados. Se o computador cliente usar Pipes Nomeados para se comunicar com o servidor usando um alias ou pelo fato de o cliente estar executando uma versão anterior do MDAC, e os servidores estarem em domínios confiáveis, o arquivo executável do agente de replicação cria um pipe nomeado (um arquivo no nível do sistema operacional) no servidor de destino para estabelecer uma conexão.

O arquivo executável cria um pipe nomeado usando o contexto de segurança da conta do SQL Server Agent no servidor de origem. Se o servidor de destino não verificar as credenciais dessa conta, a conexão não será estabelecida, e você receberá a seguinte mensagem:
O servidor SQL não existe ou acesso foi negado.
Para obter informações mais detalhadas, a Microsoft recomenda que você tente estabelecer uma conexão a partir do servidor de origem para o servidor de destino usando uma ferramenta como, por exemplo, Isql.exe do Assistente ODBC DSN. Você receberá uma mensagem de erro no nível do sistema operacional semelhante a uma das seguintes mensagens:
  • 10060 - O tempo limite da conexão foi atingido
  • 10061 - Conexão recusada
Você recebe esses erros se o servidor de destino estiver em um domínio não-confiável ou se os servidores forem servidores autônomos separados pela Internet. As conexões do pipe nomeado não podem ser estabelecidas entre dois servidores autônomos diferentes pela Internet. Para testar as conexões do pipe nomeado entre dois servidores, você pode usar os utilitários Makepipe e Readpipe. Para obter mais informações sobre os utilitários Makepipe e Readpipe, consulte o tópico "Conexões do Cliente dos Pipes Nomeados" no Manual On-line do SQL Server.

Se você usar TCP/IP, a conexão é estabelecida usando as chamadas Winsock API que são feitas usando a biblioteca de rede dos soquetes. A conexão estabelece uma sessão TCP subjacente usando o protocolo de handshake de três vias TCP. O computador cliente abre uma porta de origem e se comunica com uma porta de destino.

Problemas se você usar um endereço IP para configurar a replicação


Se você tentar registrar o servidor (Editor ou Assinatura) usando um endereço IP em vez de um alias do cliente, ou se esse alias for diferente do nome NetBIOS do SQL Server, o Agente de Mesclagem poderá falhar, e você receberá as seguintes mensagens de erro:
  • Erro 20084:
    O processo não pôde se conectar ao 'endereço IP' da assinatura.
  • Erro 18456:
    Falha de logon para o usuário 'administrator'
  • A inscrição para a publicação 'test' é inválida.
  • Erro 14010:
    O servidor remoto não está definido como um servidor de inscrição.
    Para obter informações adicionais, clique no número abaixo para consultar o artigo na Base de Dados de Conhecimento da Microsoft:
    217395  (http://support.microsoft.com/kb/217395/PT-BR/ ) PRB: Erro 18482: "Não é Possível Conectar-se ao site . . ." . ."
  • Não foi possível configurar [Nome do SQL Server] como o distribuidor para [Nome do SQL Server].
  • Erro 18483:
    Não foi possível se conectar ao servidor [Nome do SQL Server] porque 'distributor_admin' não está definido como um logon remoto no servidor.
Para evitar o recebimento dessas mensagens, sempre crie um alias que tenha o mesmo nome do servidor que você está tentando registrar no SQL Server Enterprise Manager.




Configurar a replicação entre dois computadores que estejam executando o SQL Server pela internet

Exemplo 1: A assinatura possui esquema e dados, e o snapshot inicial não é necessário.


Ativar Inscrição
  1. A partir de um prompt de comando, execute o ping no Editor a partir da Assinatura e vice-versa para certificar-se de que eles possam se conectar entre si.

    Para que a comunicação entre o Editor e a Assinatura ocorra, é necessária a resolução de nome.
  2. No log de erro do SQL Server na Assinatura, observe a porta em que o computador que está executando o SQL Server está escutando.
  3. Use as seguintes informações para criar um alias TCP/IP para a Assinatura no Editor usando o Utilitário de Rede Cliente:
    • Alias do servidor: Nome da Assinatura
    • Biblioteca Virtual: TCP/IP
    • Parâmetros de conexão
    • Nome do servidor: Endereço IP da Assinatura
    • Número da porta: Número da porta da Assinatura (Por padrão, esse número de porta é 1433.)
  4. Solicite a criação de uma conta de logon do SQL Server na Assinatura com permissões suficientes no banco de dados da Assinatura. Para obter mais informações sobre como configurar a segurança, consulte os seguintes tópicos no Manual On-line do SQL Server:
    • "Agente de Segurança de Logon"
    • "Conexão com o Distribudor"
    • "Segurança de Replicação"
    • "Considerações de Segurança (Local: Replicação)"
  5. Registre a Assinatura no SQL Server Enterprise Manager no Editor usando a Autenticação do SQL Server.
  6. No Editor, ative o servidor de destino como uma Assinatura. Para fazer isso, execute as seguintes etapas:
    1. No SQL Server Enterprise Manager, no menu Ferramentas, aponte para Replicação e clique em Configurar Publicação, Assinaturas e Distribuição.
    2. Clique na guia Assinaturas e clique no botão de propriedades (...).
    3. Clique na guia Geral, clique em Usar a autenticação do SQL Server desta conta para especificar o uso da autenticação do SQL Server pelos agentes de replicação e adicione as informações da conta a partir da etapa 4.
Desativar Inscrição


Para desativar a inscrição, crie um alias para o Editor na Assinatura e execute as seguintes etapas:
  1. A partir da Assinatura, no SQL Enterprise Manager, no menu Ferramentas, aponte para Replicação e clique em Configurar Publicação, Assinaturas e Distribuição.
  2. Clique na guia Editores.
  3. Clique na guia Editor e clique no botão de propriedades (...).
  4. Clique na guia Geral, clique em Usar a autenticação do SQL Server desta conta para especificar o uso da autenticação do SQL Server pelos agentes de replicação e especifique uma conta que tenha permissões suficientes no banco de dados da publicação.

Exemplo 2: A assinatura não possui esquema e dados, e a inscrição inicial a partir do editor é necessária.

Esse exemplo requer a configuração do serviço FTP no Editor e a configuração da Assinatura para fazer o download do snapshot inicial a partir do site FTP. Para obter mais informações, consulte os seguintes tópicos no Manual On-line do SQL Server:
  • "Segurança e Replicação pela Internet"
  • "Publicação de Dados pela Internet Usando TCP/IP e FTP"
  • "Configuração de um Editor ou Distribuidor para Escutar em TCP/IP"
  • "Configuração de uma Publicação para Permitir que as Assinaturas Recuperem Snapshots Usando FTP"
  • "Configuração de uma Inscrição para Usar FTP para Recuperar um Snapshot"
  • "Geração do Snapshot Inicial"
Certifique-se de que a Biblioteca Virtual do cliente padrão no servidor em que o agente de replicação é executado esteja configurada para TCP/IP.


Usar a autenticação do Windows para configurar a replicação entre dois computadores que estejam executando o SQL Server em domínios não-confiáveis


Se você configurou a replicação entre dois domínios ou grupos de trabalho não-confiáveis usando a autenticação do Windows, será necessário configurar a autenticação de passagem. Configure uma conta local do Windows no Editor e na Assinatura que tenha o mesmo nome e a mesma senha. Após configurar essa conta, use-a para iniciar o serviço SQL Server Agent no Editor para ativar as incrições e na Assinatura para desativá-las. Certifique-se de que essa conta esteja configurada de acordo com o tópico "Configuração das Contas dos Serviços do Windows" no Manual On-line do SQL Server.

Se o usuário tentar estabelecer uma conexão de rede com um computador remoto que esteja em um domínio não-confiável, o logon continua como se o usuário estivesse se conectando a uma conta no computador remoto. O computador remoto autentica as credenciais de logon em um banco de dados do diretório. Se essa conta não estiver definida no banco de dados do diretório, mas a conta do convidado no computador remoto estiver ativada e o convidado não possuir uma senha, o usuário faz logon com permissões do convidado. Se a conta do convidado não estiver ativada, o logon não é feito corretamente.

Importante Nos exemplos anteriores, se houver um firewall entre os dois servidores, certifique-se de que esse firewall esteja configurado de acordo com o seguinte artigo:
287932  (http://support.microsoft.com/kb/287932/PT-BR/ ) INF: São necessárias portas TCP para a comunicação com o servidor SQL por meio de um Firewall

Referências

Para obter informações adicionais, clique nos números abaixo para visualizar os artigos na Base de Dados de Conhecimento da Microsoft:
320499  (http://support.microsoft.com/kb/320499/PT-BR/ ) COMO: Sincronizar manualmente inscrições de replicação utilizando 'fazer backup' ou 'restaurar'
312292   (http://support.microsoft.com/kb/312292/PT-BR/ ) COMO: Permitir que agentes de replicação efetuem logon em arquivos de saída no servidor SQL
299903   (http://support.microsoft.com/kb/299903/PT-BR/ ) FIX: sp_scriptpublicationcustomprocs gera procedimentos armazenados de replicação

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Palavras-chave: 
kbhowtomaster KB321822