Modèle de sécurité de l'Agent de réplication

Le modèle de sécurité de l'Agent de réplication permet un contrôle fin des comptes sous lesquels les agents de réplication s'exécutent et établissent des connexions : un compte distinct peut être spécifié pour chaque agent. Pour plus d'informations sur la définition des comptes, consultez Gérer les connexions et les mots de passe dans la réplication.

Important

Lorsqu'un membre du rôle serveur fixe sysadmin configure la réplication, les agents de réplication peuvent être configurés pour emprunter l'identité du compte de l'Agent SQL Server. Il suffit de ne pas spécifier de nom de connexion et de mot de passe pour un Agent de réplication ; toutefois, cette méthode n'est pas recommandée. Pour des raisons de sécurité, il est plutôt recommandé de spécifier un compte pour chaque agent, disposant des autorisations minimales décrites dans la section « Autorisations requises par les agents » plus loin dans cette rubrique.

Comme tous les exécutables, les agents de réplication sont exécutés dans le contexte d'un compte Windows. Les agents établissent des connexions de sécurité intégrée Windows en utilisant ces comptes. Le compte sous lequel l'agent s'exécute dépend de la manière dont l'agent est démarré :

  • Démarrage de l'agent à partir d'un travail de l'Agent SQL Server (par défaut) : lorsqu'un travail de l'Agent SQL Server sert à démarrer un agent de réplication, l'agent s'exécute dans le contexte d'un compte que vous spécifiez lors de la configuration de la réplication. Pour plus d'informations sur l'Agent SQL Server et la réplication, consultez la section « Sécurité de l'Agent sous l'Agent SQL Server » plus loin dans cette rubrique. Pour plus d'informations sur les autorisations requises pour le compte sous lequel s'exécute l'Agent SQL Server, consultez Configurer l'Agent SQL Server.

  • Démarrage de l'agent à partir d'une ligne de commande MS-DOS, directement ou via un script : l'agent s'exécute dans le contexte du compte de l'utilisateur exécutant l'agent sur la ligne de commande.

  • Démarrage de l'agent à partir d'une application qui utilise des objets RMO (Replication Management Objects) ou un contrôle ActiveX : l'agent s'exécute dans le contexte de l'application appelant les objets RMO ou le contrôle ActiveX.

    [!REMARQUE]

    Les contrôles ActiveX sont déconseillés.

Il est recommandé d'établir les connexions dans le contexte de sécurité intégrée Windows. Pour des besoins de compatibilité descendante, la sécurité SQL Server peut également être utilisée. Pour plus d'informations sur les meilleures pratiques, consultez Méthodes préconisées en matière de sécurité de réplication.

Autorisations requises par les agents

Les comptes sous lesquels les agents s'exécutent et établissent des connexions nécessitent différentes autorisations. Ces autorisations sont décrites dans le tableau suivant. Il est recommandé d'exécuter chaque agent sous un compte Windows différent et d'accorder au compte uniquement les autorisations nécessaires. Pour plus d'informations sur la liste d'accès à la publication (PAL, Publication Access List), qui concerne un certain nombre d'agents, consultez Sécuriser le serveur de publication.

[!REMARQUE]

La fonctionnalité Contrôle de compte d'utilisateur disponible dans Windows Vista peut empêcher l'accès administratif au partage de fichiers d'instantanés. Vous devez donc octroyer explicitement des autorisations sur le partage de fichiers d'instantanés aux comptes Windows qui sont utilisés par l'Agent d'instantané, l'Agent de distribution et l'Agent de fusion. Vous devez effectuer cette opération même si les comptes Windows sont membres du groupe Administrateurs. Pour plus d'informations, consultez Sécuriser le dossier d'instantané.

Agent

Autorisations

Agent d'instantané

Le compte Windows sous lequel s'exécute l'agent sert à se connecter au serveur de distribution. Ce compte doit obligatoirement :

  • être au moins membre du rôle de base de données fixe db_owner dans la base de données de distribution ;

  • disposer des autorisations de lecture, écriture et modification sur le partage de fichiers d'instantanés.

Le compte utilisé pour se connecter au serveur de publication doit être au minimum membre du rôle de base de données fixe db_owner dans la base de données de publication.

Agent de lecture du journal

Le compte Windows sous lequel s'exécute l'agent est utilisé pour se connecter au serveur de distribution. Ce compte doit être au minimum membre du rôle de base de données fixe db_owner dans la base de données de distribution.

Le compte utilisé pour se connecter au serveur de publication doit être au minimum membre du rôle de base de données fixe db_owner dans la base de données de publication.

Lors de la sélection des options sync_type, replication support only, initialize with backup ou initialize from lsn, l'Agent de lecture du journal doit s'exécuter après l'exécution de sp_addsubscription, afin que les scripts d'installation soient écrits dans la base de données de distribution. L'Agent de lecture du journal doit s'exécuter sous un compte membre du rôle serveur fixe sysadmin. Lorsque l'option sync_type a la valeur Automatic, aucune action particulière de l'Agent de lecture du journal n'est requise.

Agent de distribution pour un abonnement par envoi de données (push)

Le compte Windows sous lequel s'exécute l'agent sert à se connecter au serveur de distribution. Ce compte doit obligatoirement :

  • être au moins un membre du rôle de base de données fixe db_owner dans la base de données de distribution ;

  • être membre de la liste d'accès à la publication (PAL) ;

  • avoir les autorisations de lecture sur le partage des fichiers d'instantanés.

  • avoir les autorisations de lecture sur le répertoire d'installation du fournisseur OLE DB pour l'Abonné si l'abonnement est destiné à un Abonné non-SQL Server.

Le compte employé pour se connecter à l'Abonné doit au moins être membre du rôle de base de données fixe db_owner dans la base de données d'abonnement, ou bien disposer d'autorisations équivalentes si l'abonnement s'adresse à un Abonné non-SQL Server.

[!REMARQUE]

Lorsque vous utilisez -subscriptionstreams >= 2 sur l'agent de distribution, vous devez également accorder l'autorisation View Server State sur les abonnés pour détecter les blocages.

Agent de distribution pour un abonnement par extraction de données (pull)

Le compte Windows sous lequel s'exécute l'agent est utilisé pour se connecter à l'Abonné. Ce compte doit être au minimum membre du rôle de base de données fixe db_owner dans la base de données d'abonnement.

Le compte servant à se connecter au serveur de distribution doit obligatoirement :

  • être un membre de la liste d'accès aux publications ;

  • être autorisé à lire sur le partage d'instantané.

[!REMARQUE]

Lorsque vous utilisez -subscriptionstreams >= 2 sur l'agent de distribution, vous devez également accorder l'autorisation View Server State sur les abonnés pour détecter les blocages.

Agent de fusion pour un abonnement par envoi de données (push)

Le compte Windows sous lequel s'exécute l'agent est utilisé pour se connecter au serveur de publication et au serveur de distribution. Ce compte doit obligatoirement :

  • être au minimum membre du rôle de base de données fixe db_owner dans la base de données de distribution ;

  • être membre de la liste d'accès à la publication (PAL) ;

  • être un compte de connexion associé à un utilisateur enregistré dans la base de données de publication ;

  • avoir les autorisations de lecture sur le partage des fichiers d'instantanés.

Le compte utilisé pour se connecter à l'Abonné doit être au minimum membre du rôle de base de données fixe db_owner dans la base de données d'abonnement.

Agent de fusion pour un abonnement par extraction de données (pull)

Le compte Windows sous lequel s'exécute l'agent est utilisé pour se connecter à l'Abonné. Ce compte doit être au minimum membre du rôle de base de données fixe db_owner dans la base de données d'abonnement.

Le compte servant à se connecter au serveur de publication et au serveur de distribution doit obligatoirement :

  • être membre de la liste d'accès à la publication (PAL) ;

  • être un compte de connexion associé à un utilisateur enregistré dans la base de données de publication ;

  • être un compte de connexion associé à un utilisateur enregistré dans la base de données de distribution ; l'utilisateur peut être un Guest ;

  • avoir les autorisations de lecture sur le partage des fichiers d'instantanés.

Agent de lecture de la file d'attente

Le compte Windows sous lequel s'exécute l'agent est utilisé pour se connecter au serveur de distribution. Ce compte doit être au minimum membre du rôle de base de données fixe db_owner dans la base de données de distribution.

Le compte utilisé pour se connecter au serveur de publication doit être au minimum membre du rôle de base de données fixe db_owner dans la base de données de publication.

Le compte utilisé pour se connecter à l'Abonné doit être au minimum membre du rôle de base de données fixe db_owner dans la base de données d'abonnement.

Sécurité de l'Agent dans l'Agent SQL Server

Lorsque vous configurez la réplication à l'aide de procédures SQL Server Management Studio, Transact-SQL ou RMO, un travail de l'Agent SQL Server est créé par défaut pour chaque agent. Les agents s'exécutent ensuite dans le contexte d'une étape de travail, qu'ils s'exécutent en continu, dans le cadre d'une planification ou à la demande. Vous pouvez afficher ces travaux dans le dossier Jobs de SQL Server Management Studio. Le tableau suivant donne la liste des noms des travaux.

Agent

Nom du travail

Agent d'instantané

<ServeurPublication>-<BaseDonnéesPublication>-<Publication>-<entier>

Agent d'instantané pour une partition de publication de fusion

Dyn_<ServeurPublication>-<BaseDonnéesPublication>-<Publication>-<GUID>

Agent de lecture du journal

<ServeurPublication>-<BaseDonnéesPublication>-<entier>

Agent de fusion pour abonnements par extraction de données (pull)

<ServeurPublication>-<BaseDonnéesPublication>-<Publication>-<Abonné>-<BaseDonnéesAbonnement>-<entier>

Agent de fusion pour abonnements par envoi de données (push)

<ServeurPublication>-<BaseDonnéesPublication>-<Publication>-<Abonné>-<entier>

Agent de distribution pour abonnements par envoi de données (push)

<ServeurPublication>-<BaseDonnéesPublication>-<Publication>-<Abonné>-<entier>1

Agent de distribution pour abonnements par extraction de données (pull)

<ServeurPublication>-<BaseDonnéesPublication>-<Publication>-<Abonné>-<BaseDonnéesAbonnement>-<GUID>2

Agent de distribution pour les abonnements par envoi de données aux Abonnés non SQL Server

<ServeurPublication>-<BaseDonnéesPublication>-<Publication>-<Abonné>-<entier>

Agent de lecture de la file d'attente

[<ServeurDistribution>].<entier>

1 Pour les abonnements par envoi de données sur les publications Oracle, le nom de travail est <ServeurPublication>-<ServeurPublication> au lieu de <ServeurPublication>-<BaseDonnéesPublication>.

2 Pour les abonnements par extraction de données sur les publications Oracle, le nom de travail est <ServeurPublication>-<BaseDonnéesDistribution> au lieu de <ServeurPublication>-<BaseDonnéesPublication>.

Lorsque vous configurez la réplication, vous spécifiez les comptes sous lesquels les agents doivent être exécutés. Cependant, toutes les étapes de travail s'exécutent dans le contexte de sécurité d'un proxy ; la réplication effectue donc les mappages suivants en interne pour les comptes d'agent spécifiés :

  • Le compte est d'abord mappé à des informations d'identification à l'aide de l'instruction Transact-SQL CREATE CREDENTIAL. Les proxys d'Agent SQL Server utilisent les informations d'identification pour stocker les informations relatives aux comptes d'utilisateur Windows.

  • La procédure stockée sp_add_proxy est appelée et les informations d'identification sont utilisées pour créer un proxy.

[!REMARQUE]

Ces informations sont fournies pour vous aider à comprendre les conséquences de l'exécution d'agents dans le contexte de sécurité approprié. Il ne devrait pas être nécessaire d'interagir directement avec les informations d'identification ou les proxys qui ont été créés.

Voir aussi

Concepts

Méthodes préconisées en matière de sécurité de réplication

Sécuriser le dossier d'instantané

Autres ressources

Sécurité et protection (réplication)