Modelo de seguridad del Agente de replicación

El modelo de seguridad del agente de replicación permite un control concreto sobre las cuentas con las que los agentes de replicación se ejecutan y realizan conexiones: se puede especificar una cuenta diferente para cada agente. Para obtener más información acerca de cómo especificar cuentas, vea Administrar inicios de sesión y contraseñas en la replicación.

Nota importanteImportante

Cuando un miembro de rol fijo de servidor sysadmin configura la replicación, los agentes de replicación se pueden configurar para suplantar la cuenta del Agente SQL Server. Esto se consigue no especificando ningún inicio de sesión ni contraseña para el agente de replicación; no obstante, no se recomienda este enfoque. En su lugar, por seguridad, se recomienda especificar una cuenta para cada agente con los permisos mínimos descritos en la sección "Permisos requeridos por los agentes", más adelante en este tema.

Los agentes de replicación, como todos los ejecutables, se ejecutan en el contexto de una cuenta de Windows. Los agentes establecen conexiones de seguridad integrada de Windows usando esta cuenta. La cuenta con la que se ejecuta el agente depende de la forma en que se inicie el agente:

  • Inicio del agente desde un trabajo del Agente SQL Server (valor predeterminado): cuando se utiliza un trabajo del Agente SQL Server para iniciar un agente de replicación, el agente se ejecuta en el contexto de la cuenta que se especifica al configurar la replicación. Para obtener más información acerca del Agente SQL Server y la replicación, vea la sección "Seguridad de agentes con el Agente SQL Server", más adelante en este tema. Para obtener información acerca de los permisos necesarios para la cuenta con la que se ejecuta el Agente SQL Server, vea Configurar el Agente SQL Server.

  • Inicio del agente desde una línea de comandos de MS-DOS (directamente o mediante un script): el agente se ejecuta en el contexto de la cuenta del usuario que ejecuta el agente en la línea de comandos.

  • Inicio del agente desde una aplicación que utiliza Replication Management Objects (RMO) o un control ActiveX: el agente se ejecuta en el contexto de la aplicación que llama a RMO o al control ActiveX.

    Nota

    Los controles ActiveX han quedado desusados.

Se recomienda que las conexiones se realicen en el contexto de la seguridad integrada de Windows. Para mantener la compatibilidad con versiones anteriores, también se puede utilizar la seguridad de SQL Server. Para obtener más información acerca de las prácticas recomendadas, vea Prácticas recomendadas de seguridad de replicación.

Nota

Los scripts de replicación creados en SQL Server 2000 deben actualizarse para SQL Server 2008 y aprovechar así las mejoras de seguridad. Para obtener más información, vea Cómo actualizar scripts de replicación (programación de la replicación con Transact-SQL).

Permisos requeridos por los agentes

Las cuentas con las que los agentes se ejecutan y realizan conexiones requieren diversos permisos. Estos permisos se describen en la siguiente tabla. Se recomienda que cada agente se ejecute con una cuenta de Windows diferente y que solo se concedan los permisos requeridos a la cuenta. Para obtener información acerca de la lista de acceso a la publicación (PAL), que es importante para varios agentes, vea Proteger el publicador.

Nota

El Control de cuentas de usuario (UAC) de Windows Vista puede impedir el acceso administrativo al recurso compartido de instantáneas. Por lo tanto, debe conceder de forma explícita permisos del recurso compartido de instantáneas a las cuentas de Windows usadas por el Agente de instantáneas, el Agente de distribución y el Agente de mezcla. Debe hacerlo incluso si las cuentas de Windows pertenecen al grupo Administradores. Para obtener más información, vea Proteger la carpeta de instantáneas.

Agente

Permisos

Agente de instantáneas

La cuenta de Windows con la que se ejecuta el agente se utiliza al realizar conexiones al distribuidor. Esta cuenta debe:

  • Ser miembro, como mínimo, de la función de base de datos fija db_owner en la base de datos de distribución.

  • Tener permisos de lectura, escritura y modificación en el recurso compartido de instantáneas.

La cuenta utilizada para conectarse al publicador debe ser miembro, como mínimo, de la función de base de datos fija db_owner en la base de datos de publicación.

Agente de registro del LOG

La cuenta de Windows con la que se ejecuta el agente se utiliza al realizar conexiones al distribuidor. Esta cuenta debe ser, como mínimo, miembro del rol fijo de base de datos db_owner en la base de datos de distribución.

La cuenta utilizada para conectarse al publicador debe ser miembro, como mínimo, del rol fijo de base de datos db_owner en la base de datos de publicaciones.

Agente de distribución para una suscripción de inserción

La cuenta de Windows con la que se ejecuta el agente se utiliza al realizar conexiones al distribuidor. Esta cuenta debe:

  • Ser miembro, como mínimo, del rol fijo de base de datos db_owner en la base de datos de distribución.

  • Ser miembro de la lista de acceso de la publicación (PAL).

  • Tener permisos de lectura en el recurso compartido de instantáneas.

  • Tener permisos de lectura en el directorio de instalación del proveedor OLE DB para el suscriptor si la suscripción es para un suscriptor que no sea de SQL Server.

La cuenta utilizada para conectarse al suscriptor debe ser, como mínimo, miembro del rol fijo de base de datos db_owner en la base de datos de suscripciones, o tener permisos equivalentes si las suscripciones son para un suscriptor que no sea de SQL Server.

Agente de distribución para una suscripción de extracción

La cuenta de Windows con la que se ejecuta el agente se utiliza al realizar conexiones al suscriptor. Esta cuenta debe ser, como mínimo, miembro del rol fijo de base de datos db_owner en la base de datos de suscripciones.

La cuenta utilizada para conectarse al distribuidor debe:

  • Ser miembro de la lista de acceso de la publicación (PAL).

  • Tener permisos de lectura en el recurso compartido de instantáneas.

Agente de mezcla para una suscripción de inserción

La cuenta de Windows con la que se ejecuta el agente se utiliza al realizar conexiones al publicador y al distribuidor. Esta cuenta debe:

  • Ser miembro, como mínimo, del rol fijo de base de datos db_owner en la base de datos de distribución.

  • Ser miembro de la lista de acceso de la publicación (PAL).

  • Ser un inicio de sesión asociado a un usuario en la base de datos de publicaciones.

  • Tener permisos de lectura en el recurso compartido de instantáneas.

La cuenta utilizada para conectarse al suscriptor debe ser miembro, como mínimo, del rol fijo de base de datos db_owner en la base de datos de suscripciones.

Agente de mezcla para una suscripción de extracción

La cuenta de Windows con la que se ejecuta el agente se utiliza al realizar conexiones al suscriptor. Esta cuenta debe ser, como mínimo, miembro del rol fijo de base de datos db_owner en la base de datos de suscripciones.

La cuenta utilizada para conectarse al publicador y al distribuidor debe:

  • Ser miembro de la lista de acceso de la publicación (PAL).

  • Ser un inicio de sesión asociado a un usuario en la base de datos de publicaciones.

  • Ser un inicio de sesión asociado a un usuario en la base de datos de distribución. El usuario puede ser el usuario Guest.

  • Tener permisos de lectura en el recurso compartido de instantáneas.

Agente de lectura de cola

La cuenta de Windows con la que se ejecuta el agente se utiliza al realizar conexiones al distribuidor. Esta cuenta debe ser, como mínimo, miembro del rol fijo de base de datos db_owner en la base de datos de distribución.

La cuenta utilizada para conectarse al publicador debe ser miembro, como mínimo, del rol fijo de base de datos db_owner en la base de datos de publicaciones.

La cuenta utilizada para conectarse al suscriptor debe ser miembro, como mínimo, del rol fijo de base de datos db_owner en la base de datos de suscripciones.

Seguridad de agentes con el Agente SQL Server

Cuando se configura la replicación mediante SQL Server Management Studio, procedimientos de Transact-SQL o RMO, se crea de forma predeterminada un trabajo del Agente SQL Server para cada agente. A continuación, los agentes se ejecutan en el contexto de un paso de trabajo, independientemente de si se ejecutan de forma continua, programada o a petición. Estos trabajos se pueden ver en la carpeta Trabajos de SQL Server Management Studio. En la tabla siguiente se enumeran los nombres de los trabajos.

Agente

Nombre del trabajo

Agente de instantáneas

<publicador>-<baseDeDatosDePublicaciones>-<publicación>-<entero>

Agente de replicación para una partición de publicación de combinación

Dyn_<publicador>-<baseDeDatosDePublicaciones>-<publicación>-<GUID>

Agente de registro del LOG

<publicador>-<baseDeDatosDePublicaciones>-<entero>

Agente de mezcla para suscripciones de extracción

<publicador>-<baseDeDatosDePublicaciones>-<publicación>-<suscriptor>-<baseDeDatosDeSuscripciones>-<entero>

Agente de mezcla para suscripciones de inserción

<publicador>-<baseDeDatosDePublicaciones>-<publicación>-<suscriptor>-<entero>

Agente de distribución para suscripciones de inserción

<publicador>-<baseDeDatosDePublicaciones>-<publicación>-<suscriptor>-<entero>1

Agente de distribución para suscripciones de extracción

<publicador>-<baseDeDatosDePublicaciones>-<publicación>-<suscriptor>-<baseDeDatosDeSuscripciones>-<GUID>2

Agente de distribución para suscripciones de inserción en suscriptores que no sean de SQL Server

<publicador>-<baseDeDatosDePublicaciones>-<publicación>-<suscriptor>-<entero>

Agente de lectura de cola

[<distribuidor>].<entero>

1 Para suscripciones de inserción a publicaciones de Oracle, el nombre del trabajo es <publicador>-<publicador> en lugar de <publicador>-<baseDeDatosDePublicaciones>.

2 Para suscripciones de extracción a publicaciones de Oracle, el nombre del trabajo es <publicador>-<baseDeDatosDeDistribución> en lugar de <publicador>-<baseDeDatosDePublicaciones>.

Al configurar la replicación se especifican las cuentas en las que se ejecutarán los agentes. No obstante, todos los pasos del trabajo se ejecutan en el contexto de seguridad de un proxy, por lo que la replicación lleva a cabo internamente las siguientes asignaciones para las cuentas de agente que especifique:

  • La cuenta se asigna primero a una credencial utilizando la instrucción CREATE CREDENTIAL de Transact-SQL. Las cuentas de proxy del Agente SQL Server utilizan credenciales para almacenar información acerca de las cuentas de usuario de Windows.

  • Se llama al procedimiento almacenado sp_add_proxy y, a continuación, se utiliza la credencial para crear un proxy. Para obtener más información acerca de los proxy, vea Crear cuentas de proxy del Agente SQL Server.

Nota

Esta información se facilita para ayudarle a entender las implicaciones de ejecutar agentes con el contexto de seguridad adecuado. No debería ser necesario interactuar directamente con las credenciales o los proxy que se hayan creado.