Cómo crear una suscripción para un suscriptor que no sea de SQL Server (programación de la replicación con Transact-SQL)

La replicación transaccional y la replicación de instantáneas admiten la publicación de datos en suscriptores que no son de SQL Server. Puede crear suscripciones de inserción para suscriptores que no sean de SQL Server mediante programación con procedimientos almacenados de replicación. Para obtener más información sobre plataformas de suscriptores admitidos, vea Suscriptores que no son de SQL Server.

Nota de seguridadNota de seguridad

Cuando sea posible, pida a los usuarios que proporcionen credenciales de seguridad en tiempo de ejecución. Si debe almacenar credenciales en un archivo de script, protéjalo para evitar el acceso no autorizado.

Para crear una suscripción de inserción para una publicación transaccional o de instantáneas a un suscriptor que no sea de SQL Server

  1. Instale el proveedor OLE DB más reciente para el Suscriptor que no sea de SQL Server en el Publicador y el Distribuidor. Para los requisitos de replicación para un proveedor OLE DB, vea Suscriptores que no son de SQL Server, Suscriptores de Oracle, Suscriptores de IBM DB2.

  2. En el publicador de la base de datos de publicación, compruebe que la publicación admita suscriptores que no sean de SQL Server mediante la ejecución de sp_helppublication (Transact-SQL).

    • Si el valor de enabled_for_het_sub es 1, se admiten Suscriptores que no sean de SQL Server.

    • Si el valor de enabled_for_het_sub es 0, ejecute sp_changepublication (Transact-SQL), especificando enabled_for_het_sub para @property y true para @value.

      [!NOTA]

      Antes de cambiar enabled_for_het_sub a true, debe quitar cualquier suscripción existente en la publicación. No puede establecer enabled_for_het_sub en true cuando la publicación también admite las suscripciones de actualización. El cambio de enabled_for_het_sub afectará a otras propiedades de publicación. Para obtener más información, vea Suscriptores que no son de SQL Server.

  3. En la base de datos de publicación del publicador, ejecute sp_addsubscription (Transact-SQL). Especifique @publication, @subscriber, un valor de (destino predeterminado) para @destination_db, un valor de push para @subscription_typey un valor de 3 para @subscriber_type (especifica un proveedor OLE DB).

  4. En la base de datos de publicación del publicador, ejecute sp_addpushsubscription_agent (Transact-SQL). Especifique lo siguiente:

    • Los parámetros @subscriber y @publication.

    • Un valor de (destino predeterminado) para @subscriber_db,

    • Las propiedades del origen de datos que no es de SQL Server para @subscriber_provider, @subscriber_datasrc, @subscriber_location, @subscriber_provider_string y @subscriber_catalog.

    • Las credenciales de Microsoft Windows con las que se ejecuta el Agente de distribución en el distribuidor para @job_login y @job_password.

      [!NOTA]

      Las conexiones que se realicen con la Autenticación integrada de Windows siempre usan las credenciales de Windows especificadas por @job_login y @job_password. El Agente de distribución siempre realiza la conexión local con el distribuidor mediante la Autenticación integrada de Windows. De forma predeterminada, el agente se conectará con el suscriptor mediante la Autenticación integrada de Windows.

    • Un valor de 0 para @subscriber_security_mode y la información de inicio de sesión del proveedor OLE DB para @subscriber_login y @subscriber_password.

    • Una programación para el Agente de distribución de esta suscripción. Para obtener más información, vea Cómo especificar programaciones de sincronización (programación de la replicación con Transact-SQL).

    Nota de seguridadNota de seguridad

     Al crear una suscripción de inserción en un publicador con un distribuidor remoto, los valores suministrados para todos los parámetros, incluidos job_login y job_password, se envían al distribuidor como texto sin formato. Antes de ejecutar este procedimiento almacenado, se recomienda cifrar la conexión entre el publicador y su distribuidor remoto. Para obtener más información, vea Cifrar conexiones a SQL Server.