Como criar uma assinatura para um assinante não-SQL Server (Programação Transact-SQL de replicação)

Dados de publicação de suporte a replicação de transação e de instantâneo para Assinantes não-SQL Server. Crie assinaturas push para Assinantes não-SQL Server de forma programática, usando procedimentos armazenados de replicação. Para obter mais informações sobre plataformas de Assinantes com suporte, consulte Assinantes não SQL Server.

Observação sobre segurançaObservação sobre segurança

Quando possível, solicite que os usuários insiram as credenciais de segurança em tempo de execução. Sendo necessário armazenar credenciais em um arquivo de script, proteja o arquivo para evitar acesso não autorizado.

Para criar uma assinatura push para uma publicação transacional ou de instantâneo para um assinante não-SQL Server

  1. Instale o mais recente provedor OLE DB para o Assinante não-SQL Server no Publicador e no Distribuidor. Para os requisitos de replicação de um provedor OLE DB, consulte Assinantes não SQL Server, Assinantes Oracle, Assinantes do IBM DB2.

  2. No Publicador do banco de dados de publicação, verifique se a publicação oferece suporte a Assinantes não-SQL Server, executando sp_helppublication (Transact-SQL).

    • Se o valor de enabled_for_het_sub for 1, os Assinantes não-SQL Server terão suporte.

    • Se o valor de enabled_for_het_sub for 0, execute sp_changepublication (Transact-SQL), especificando enabled_for_het_sub para @property e true para @value.

      ObservaçãoObservação

      Antes de alterar enabled_for_het_sub para true, é preciso ignorar todas as assinaturas existentes para a publicação. Não é possível definir enabled_for_het_sub como true quando a publicação oferecer suporte também a assinaturas de atualização. Alterar enabled_for_het_sub afetará outras propriedades de publicação. Para obter mais informações, consulte Assinantes não SQL Server.

  3. No Publicador do banco de dados de publicação, execute sp_addsubscription (Transact-SQL). Especifique @publication, @subscriber; um valor de (destino padrão) para @destination_db; um valor de push para @subscription_type, e um valor de 3 para @subscriber_type (especifica um provedor OLE DB).

  4. No Publicador do banco de dados de publicação, execute sp_addpushsubscription_agent (Transact-SQL). Especifique o seguinte:

    • Os parâmetros @subscriber e @publication.

    • Um valor de (destino padrão) para @subscriber_db,

    • As propriedades de fonte de dados não-SQL Server para @subscriber_provider, @subscriber_datasrc, @subscriber_location, @subscriber_provider_string e @subscriber_catalog.

    • As credenciais do Microsoft Windows com as quais o Distribution Agent do Distribuidor é executado para @job_login e @job_password.

      ObservaçãoObservação

      As conexões feitas usando a Autenticação Integrada do Windows sempre usam as credenciais do Windows especificadas por @job_login e @password. O Distribution Agent faz sempre a conexão local com o Distribuidor usando a Autenticação Integrada do Windows. Por padrão, o agente se conecta ao Assinante usando a Autenticação Integrada do Windows.

    • Um valor de 0 para @subscriber_security_mode e informações de logon do provedor OLE DB para @subscriber_login e @subscriber_password.

    • Agenda para o trabalho do Distribution Agent para essa assinatura. Para obter mais informações, consulte Como especificar agendas de sincronização (Programação Transact-SQL de replicação).

    Observação sobre segurançaObservação sobre segurança

     Ao criar uma assinatura push em um Publicador com um Distribuidor remoto, os valores especificados para todos os parâmetros, inclusive job_login e job_password são enviados para o Distribuidor como texto sem formatação. Criptografe a conexão entre o Publicador e seu Distribuidor remoto antes de executar esse procedimento armazenado. Para obter mais informações, consulte Criptografando conexões com o SQL Server.