Afficher et modifier les paramètres de sécurité de la réplication

S’applique à :SQL ServerAzure SQL Managed Instance

Cette rubrique explique comment afficher et modifier les paramètres de sécurité de réplication dans SQL Server à l’aide de SQL Server Management Studio, Transact-SQL ou Replication Management Objects (RMO). Par exemple, vous voulez peut-être modifier la connexion de l'Agent de lecture du journal au serveur de publication de l'authentification SQL Server à l'authentification intégrée de Windows, ou vous avez peut-être besoin de modifier les informations d'identification utilisées pour exécuter un travail de l'Agent lorsque le mot de passe du compte Windows a changé. Pour plus d’informations sur les autorisations requises par chaque agent, consultez Modèle de sécurité de l’Agent de réplication.

Dans cette rubrique

Avant de commencer

Limitations et restrictions

  • Les procédures stockées à utiliser dépendent du type d'agent et du type de connexion serveur.

  • Les classes et les propriétés RMO que vous utilisez dépendent du type d'agent et du type de connexion au serveur.

Sécurité

Pour des raisons de sécurité, les valeurs réelles des mots de passe sont masquées dans les jeux de résultats retournés par les procédures stockées de réplication.

Autorisations

Utilisation de SQL Server Management Studio

Affichez et modifiez les paramètres de sécurité dans les boîtes de dialogue suivantes :

  1. La boîte de dialogue Mettre à jour les mots de passe de réplication, disponible dans le dossier réplication de SQL Server Management Studio. Si vous modifiez le mot de passe d’un compte SQL Server ou d’un compte Windows sur un serveur dans une topologie de réplication, utilisez cette boîte de dialogue plutôt que de mettre à jour le mot de passe pour chaque agent qui utilise le compte. Si des agents utilisent le même compte sur plus d'un serveur, vous devez vous connecter à chaque serveur et modifier le mot de passe. Les mots de passe sont mis à jour partout où la réplication utilise le mot de passe. Le mot de passe n'est pas mis à jour ailleurs, comme sur les serveurs liés.

  2. Page Sécurité de l’agent de la boîte de dialogue Propriétés de publication - <Publication>. Pour plus d'informations sur l'accès à cette boîte de dialogue, consultez Afficher et modifier les propriétés d’un serveur de publication.

  3. Propriétés de l’abonnement - <Boîte de dialogue Abonnement> . Pour plus d'informations sur l'accès à cette boîte de dialogue, consultez View and Modify Push Subscription Properties et View and Modify Pull Subscription Properties.

  4. Propriétés du serveur de distribution - <Propriétés du serveur> de distribution et de la base de données de distribution - <Boîtes de dialogue Base de données>. Pour plus d'informations sur l'accès à ces boîtes de dialogue, consultez View and Modify Distributor and Publisher Properties.

  5. Propriétés du serveur de publication - <Boîte de dialogue Serveur de publication> . Pour plus d'informations sur l'accès à cette boîte de dialogue, consultez View and Modify Distributor and Publisher Properties.

Pour modifier le mot de passe d'un compte utilisé par un ou plusieurs agents

  1. S'il s'agit d'un compte SQL Server, cette boîte de dialogue modifiera également le mot de passe pour le compte SQL Server. S'il s'agit d'un compte Windows, modifiez d'abord le mot de passe dans Windows. Pour plus d'informations, consultez la documentation Windows.

    Remarque

    Après avoir modifié un mot de passe de réplication, vous devez arrêter puis redémarrer chaque Agent qui utilise ce mot de passe afin que les modifications apportées prennent effet.

  2. Connecter au serveur dans SQL Server Management Studio, puis développez le nœud du serveur.

  3. Cliquez avec le bouton droit sur le dossier Réplication , puis cliquez sur Mettre à jour les mots de passe de réplication.

  4. Dans la boîte de dialogue Mettre à jour les mots de passe de réplication , spécifiez le compte et le nouveau mot de passe.

  5. Cliquez sur OK.

Pour modifier les paramètres de sécurité pour l'Agent d'instantané

  1. Dans la page Sécurité de l’agent de la boîte de dialogue Propriétés de publication - <Publication>, cliquez sur le bouton Sécurité Paramètres en regard de la zone de texte De l’Agent d’instantané.

  2. Dans la boîte de dialogue Sécurité de l'Agent d'instantané , spécifiez le compte sous lequel l'Agent doit s'exécuter :

    • Entrez un nouveau compte Windows dans la zone de texte Compte de l'agent .

    • Entrez un nouveau mot de passe fort dans les zones de texte Mot de passe et Confirmer le mot de passe .

  3. Spécifiez le contexte sous lequel l'Agent doit se connecter du serveur de distribution au serveur de publication. Si vous sélectionnez En utilisant la connexion SQL Server suivante, vous devez également spécifier la connexion :

    • Entrez une connexion dans la zone de texte Connexion .

    • Entrez un nouveau mot de passe fort dans les zones de texte Mot de passe et Confirmer le mot de passe .

    Remarque

    Si le serveur de publication est un serveur de publication Oracle, le contexte de connexion est spécifié dans la boîte de dialogue Propriétés du serveur de distribution - <Serveur de distribution> . Consultez la procédure de modification du contexte ci-dessous.

  4. Cliquez sur OK.

Pour modifier les paramètres de sécurité pour l'Agent de lecture du journal

  1. Dans la page Sécurité de l’agent de la boîte de dialogue Propriétés de publication - <Publication>, cliquez sur le bouton Sécurité Paramètres en regard de la zone de texte De l’Agent de lecture du journal.

  2. Dans la boîte de dialogue Sécurité de l'Agent de lecture du journal , spécifiez le compte sous lequel l'Agent doit s'exécuter :

    • Entrez un nouveau compte Windows dans la zone de texte Compte de l'agent .

    • Entrez un nouveau mot de passe fort dans les zones de texte Mot de passe et Confirmer le mot de passe .

  3. Spécifiez le contexte sous lequel l'Agent doit se connecter du serveur de distribution au serveur de publication. Si vous sélectionnez En utilisant la connexion SQL Server suivante, vous devez également spécifier la connexion :

    • Entrez une connexion dans la zone de texte Connexion .

    • Entrez un nouveau mot de passe fort dans les zones de texte Mot de passe et Confirmer le mot de passe .

    Remarque

    Si le serveur de publication est un serveur de publication Oracle, le contexte de connexion est spécifié dans la boîte de dialogue Propriétés du serveur de distribution - <Serveur de distribution> . Modifiez le contexte à l'aide de la procédure suivante.

  4. Cliquez sur OK.

    Remarque

    Il existe un Agent de lecture du journal pour chaque base de données publiée. La modification des paramètres de sécurité sur l'agent d'une publication affecte les paramètres de toutes les publications dans la base de données de publication.

Pour modifier le contexte sous lequel l'Agent d'instantané et l'Agent de lecture du journal d'une publication Oracle établissent des connexions sur le serveur de publication

  1. Dans la page Serveurs de publication de la boîte de dialogue Propriétés du serveur de distribution - <Serveur de distribution>, cliquez sur le bouton Propriétés (...) en regard d’un serveur de publication.

  2. Dans la section Connexion de l'Agent au serveur de publication , spécifiez le nom d'accès et le mot de passe utilisés par le schéma utilisateur d'administration de réplication que vous avez configuré. Pour plus d’informations, consultez Configurer un serveur de publication Oracle.

  3. Cliquez sur OK.

Pour modifier les paramètres de sécurité relatifs à l'Agent de distribution pour un abonnement par émission de données

  1. Dans la boîte de dialogue Propriétés de l’abonnement - <Abonnement> sur le serveur de publication, vous pouvez apporter les modifications suivantes :

    • Pour modifier le compte sous lequel l’Agent de distribution s’exécute et établit des connexions au serveur de distribution, cliquez sur la ligne Compte de processus de l’agent, puis sur le bouton des propriétés (...) dans la ligne. Spécifiez un compte et un mot de passe dans la boîte de dialogue Sécurité de l'Agent de distribution .

    • Pour modifier le contexte sous lequel l’Agent de distribution se connecte à l’Abonné, cliquez sur la ligne Connexion de l’Abonné, puis sur le bouton des propriétés () dans la ligne. Spécifiez le contexte dans la boîte de dialogue Entrer les informations de connexion .

      Si vous utilisez les abonnements de mise à jour en attente, l'Agent de lecture de la file d'attente utilise également le contexte spécifié ici pour les connexions à l'Abonné.

  2. Cliquez sur OK.

Pour modifier les paramètres de sécurité relatifs à l'Agent de distribution pour un abonnement par extraction

  1. Dans la boîte de dialogue Propriétés de l’abonnement - <Abonnement> sur l’Abonné, vous pouvez apporter les modifications suivantes :

    • Pour modifier le compte sous lequel l’Agent de distribution s’exécute et établit des connexions à l’Abonné, cliquez sur la ligne Compte de processus de l’agent, puis sur le bouton des propriétés (...) dans la ligne. Spécifiez un compte et un mot de passe dans la boîte de dialogue Sécurité de l'Agent de distribution .

      Si vous utilisez les abonnements de mise à jour en attente, l'Agent de lecture de la file d'attente utilise également le contexte spécifié ici pour les connexions à l'Abonné.

    • Pour modifier le contexte sous lequel l’Agent de distribution se connecte au serveur de distribution, cliquez sur la ligne Connexion du serveur de distribution, puis sur le bouton des propriétés () dans la ligne. Spécifiez le contexte dans la boîte de dialogue Entrer les informations de connexion .

  2. Cliquez sur OK.

Pour modifier les paramètres de sécurité relatifs à l'Agent de fusion pour un abonnement par émission de données

  1. Dans la boîte de dialogue Propriétés de l’abonnement - <Abonnement> sur le serveur de publication, vous pouvez apporter les modifications suivantes :

    • Pour modifier le compte sous lequel l’Agent de fusion s’exécute et établit des connexions au serveur de publication et au serveur de distribution, cliquez sur la ligne Compte de processus de l’agent, puis sur le bouton des propriétés (...) dans la ligne. Spécifiez un compte et un mot de passe dans la boîte de dialogue Sécurité de l'Agent de fusion .

    • Pour modifier le contexte sous lequel l’Agent de fusion se connecte à l’Abonné, cliquez sur la ligne Connexion de l’Abonné, puis sur le bouton des propriétés () dans la ligne. Spécifiez le contexte dans la boîte de dialogue Entrer les informations de connexion .

  2. Cliquez sur OK.

Pour modifier les paramètres de sécurité relatifs à l'Agent de fusion pour un abonnement par extraction

  1. Dans la boîte de dialogue Propriétés de l’abonnement - <Abonnement> sur l’Abonné, vous pouvez apporter les modifications suivantes :

    • Pour modifier le compte sous lequel l’Agent de fusion s’exécute et établit des connexions à l’Abonné, cliquez sur la ligne Compte de processus de l’agent, puis sur le bouton des propriétés (...) dans la ligne. Spécifiez un compte et un mot de passe dans la boîte de dialogue Sécurité de l'Agent de fusion .

    • Pour modifier le contexte sous lequel l’Agent de fusion se connecte au serveur de publication et au serveur de distribution, cliquez sur la ligne Connexion du serveur de publication, puis sur le bouton des propriétés () dans la ligne. Spécifiez le contexte dans la boîte de dialogue Entrer les informations de connexion .

  2. Cliquez sur OK.

Pour modifier le compte sous lequel s'exécute l'Agent de lecture de la file d'attente

  1. Dans la page Général de la boîte de dialogue Propriétés du serveur de distribution - <Serveur de distribution>, cliquez sur le bouton Propriétés (...) en regard de la base de données de distribution.

  2. Dans la boîte de dialogue Propriétés de la base de données de distribution - <Base de données>, cliquez sur le bouton Sécurité Paramètres en regard de la zone de texte Du compte de traitement agent.

  3. Dans la boîte de dialogue Sécurité de l'Agent de lecture de la file d'attente , spécifiez le compte sous lequel l'agent s'exécute et établit des connexions sur le serveur de distribution :

    • Entrez un nouveau compte Windows dans la zone de texte Compte de processus .

    • Entrez un nouveau mot de passe fort dans les zones de texte Mot de passe et Confirmer le mot de passe .

  4. Cliquez sur OK.

    Remarque

    Il existe un Agent de lecture de la file d'attente pour chaque base de données de distribution. La modification des paramètres de sécurité pour l'agent affecte les paramètres de toutes les publications sur tous les serveurs de publication qui utilisent cette base de données de distribution.

Pour modifier le contexte sous lequel l'Agent de lecture de la file d'attente établit des connexions au serveur de publication

  1. Dans la page Serveurs de publication de la boîte de dialogue Propriétés du serveur de distribution - <Serveur de distribution>, cliquez sur le bouton Propriétés (...) en regard du serveur de publication.

  2. Dans la section Connexion de l'Agent au serveur de publication , spécifiez une valeur Imiter le compte de processus de l'Agent ou Authentification SQL Server pour l'option Mode de connexion de l'agent . Si vous spécifiez Authentification SQL Server, indiquez également des valeurs pour Nom d'accès et Mot de passe.

  3. Cliquez sur OK.

    Remarque

    Il existe un Agent de lecture de la file d'attente pour chaque base de données de distribution. La modification des paramètres de sécurité pour l'agent affecte les paramètres de toutes les publications sur tous les serveurs de publication qui utilisent cette base de données de distribution.

Pour modifier le contexte sous lequel l'Agent de lecture de la file d'attente établit des connexions sur l'Abonné

  • L'Agent de lecture de la file d'attente utilise le même contexte de connexion que l'Agent de distribution pour l'abonnement. Pour plus d'informations, consultez les procédures ci-dessus pour l'Agent de distribution.

Pour modifier les paramètres de sécurité pour un abonnement par extraction de données (pull) mis à jour immédiatement

  1. Dans la boîte de dialogue Propriétés de l’abonnement - <Abonnement> sur l’Abonné, cliquez sur la ligne Connecter ion du serveur de publication, puis cliquez sur le bouton Propriétés (...) de la ligne.

  2. Dans la boîte de dialogue Entrer les informations de connexion , sélectionnez une des options suivantes :

    • Utiliser une connexion d'un serveur lié ou d'un serveur distant. Sélectionnez cette option si vous avez défini un serveur distant ou un serveur lié entre l’abonné et le serveur de publication à l’aide de sp_addserver (Transact-SQL), sp_addlinkedserver (Transact-SQL), SQL Server Management Studio ou d’une autre méthode.

    • Utiliser l'authentification SQL Server avec la connexion et le mot de passe suivants. Sélectionnez cette option si vous n'avez pas défini un serveur distant ou un serveur lié entre l'Abonné et le serveur de publication. La réplication va créer un serveur lié à votre place. Le compte que vous spécifiez doit déjà exister sur le serveur de publication.

  3. Cliquez sur OK.

Remarque

Cette procédure modifie la méthode utilisée par les déclencheurs de réplication pour se connecter de l'Abonné au serveur de publication lorsque des modifications sont effectuées sur l'Abonné. Vous pouvez également modifier les paramètres associés avec l'Agent de distribution pour un abonnement mis à jour immédiatement. Pour plus d'informations, consultez les procédures plus haut dans cette rubrique.

Cette procédure s'applique uniquement aux abonnements par extraction de données (pull). Pour les abonnements Push, utilisez la procédure stockée sp_link_publication (Transact-SQL).

Pour modifier le mot de passe pour la connexion administrative du serveur de publication au serveur de distribution

  1. Dans la page Serveurs de publication de la boîte de dialogue Propriétés du serveur de distribution - <Serveur de distribution> , entrez un mot de passe fort dans les zones de texte Mot de passe et Confirmer le mot de passe .

  2. Cliquez sur OK.

  3. Dans la page Général des propriétés du serveur de publication - <Boîte de dialogue Éditeur>, entrez un mot de passe fort dans les zones de texte Mot de passe et Confirmer le mot de passe.

  4. Cliquez sur OK.

Utilisation de Transact-SQL

Important

Dans toutes les procédures répertoriées ci-dessous, lorsque cela est possible, demandez aux utilisateurs de fournir les informations d'identification de sécurité au moment de l'exécution. Si vous stockez des informations d'identification dans un fichier de script, vous devez sécuriser le fichier pour empêcher tout accès non autorisé.

Pour modifier toutes les instances d'un mot de passe stocké sur un serveur de réplication

  1. Exécutez sp_changereplicationserverpasswordssur la base de données MASTER d'un serveur inclus dans une topologie de réplication. Spécifiez le compte Microsoft Windows ou la connexion Microsoft SQL Server dont le mot de passe est modifié et le @login nouveau mot de passe pour le compte ou la connexion pour @password. Cela modifie chaque instance du mot de passe utilisée par tous les agents sur le serveur lors de la connexion à d'autres serveurs dans la topologie.

    Remarque

    Pour modifier uniquement la connexion et le mot de passe pour une connexion à un serveur particulier dans la topologie (tel que le serveur de distribution ou l’Abonné), spécifiez le nom de ce serveur pour @server.

  2. Répétez l'étape 1 sur chaque serveur dans la topologie de réplication où le mot de passe doit être mis à jour.

    Remarque

    Après avoir modifié un mot de passe de réplication, vous devez arrêter puis redémarrer chaque Agent qui utilise ce mot de passe afin que les modifications apportées prennent effet.

Pour modifier les paramètres de sécurité pour l'Agent d'instantané

  1. Sur le serveur de publication, exécutez sp_helppublication_snapshot, en spécifiant @publication. Cela retourne les paramètres de sécurité actuels pour l'Agent d'instantané.

  2. Sur le serveur de publication, exécutez sp_changepublication_snapshot, en spécifiant @publication et un ou plusieurs des paramètres de sécurité suivants à modifier :

    • Pour changer le compte Windows sous lequel l’agent s’exécute ou seulement le mot de passe de ce compte, spécifiez @job_login et @job_password.

    • Pour changer le mode de sécurité utilisé lors de la connexion au serveur de publication, spécifiez la valeur 1 ou 0 pour @publisher_security_mode.

    • Lorsque vous modifiez le mode de sécurité utilisé lors de la connexion au serveur de publication de 1 à 0 ou lors de la modification d’une connexion SQL Server utilisée pour cette connexion, spécifiez @publisher_login et @publisher_password.

    Important

    Lors de la configuration d'un serveur de publication avec un serveur de distribution distant, les valeurs fournies pour tous les paramètres, y compris job_login et job_password, sont envoyées en texte brut au serveur de distribution. Vous devez chiffrer la connexion entre le serveur de publication et son serveur de distribution distant avant d'exécuter cette procédure stockée. Pour plus d’informations, consultez Activer des connexions chiffrées dans le moteur de base de données (Gestionnaire de configuration SQL Server).

Pour modifier les paramètres de sécurité pour l'Agent de lecture du journal

  1. Sur le serveur de publication, exécutez sp_helplogreader_agent, en spécifiant @publisher. Cela retourne les paramètres de sécurité actuels pour l'Agent de lecture du journal.

  2. Sur le serveur de publication, exécutez sp_changelogreader_agent, en spécifiant @publication et un ou plusieurs des paramètres de sécurité suivants à modifier :

    • Pour changer le compte Windows sous lequel l’agent s’exécute ou seulement le mot de passe de ce compte, spécifiez @job_login et @job_password.

    • Pour changer le mode de sécurité utilisé lors de la connexion au serveur de publication, spécifiez la valeur 1 ou 0 pour @publisher_security_mode.

    • Lorsque vous modifiez le mode de sécurité utilisé lors de la connexion au serveur de publication de 1 à 0 ou lors de la modification d’une connexion SQL Server utilisée pour cette connexion, spécifiez @publisher_login et @publisher_password.

    Remarque

    Après avoir modifié le nom de connexion ou le mot de passe d'un Agent, vous devez arrêter et redémarrer celui-ci avant que la modification prenne effet.

    Important

    Lors de la configuration d'un serveur de publication avec un serveur de distribution distant, les valeurs fournies pour tous les paramètres, y compris job_login et job_password, sont envoyées en texte brut au serveur de distribution. Vous devez chiffrer la connexion entre le serveur de publication et son serveur de distribution distant avant d'exécuter cette procédure stockée. Pour plus d’informations, consultez Activer des connexions chiffrées dans le moteur de base de données (Gestionnaire de configuration SQL Server).

Pour modifier les paramètres de sécurité relatifs à l'Agent de distribution pour un abonnement par émission de données

  1. Sur la base de données de publication du serveur de publication, exécutez sp_helpsubscription, en spécifiant @publication et @subscriber. Cela retourne les propriétés de l'abonnement, y compris les paramètres de sécurité relatifs à l'Agent de distribution qui s'exécute sur le serveur de distribution.

  2. Sur la base de données de publication du serveur de publication, exécutez sp_changesubscription, en spécifiant @publication, @subscriber, @subscriber_db, la valeur all pour @article, le nom de la propriété de sécurité pour @property et la nouvelle valeur de la propriété pour @value.

  3. Répétez l'étape 2 pour chacune des propriétés de sécurité suivantes à modifier :

    • Pour changer le compte Windows sous lequel l’agent s’exécute ou seulement le mot de passe de ce compte, spécifiez la valeur distrib_job_password pour @property et un nouveau mot de passe pour @value. Si vous changez le compte, répétez l’étape 2 en spécifiant la valeur distrib_job_login pour @property et le nouveau compte Windows pour @value.

    • Pour changer le mode de sécurité utilisé quand vous vous connectez à l’Abonné, spécifiez la valeur subscriber_security_mode pour @property et la valeur 1 (authentification Windows intégrée) ou 0 (authentification SQL Server) pour @value.

    • Si vous changez le mode de sécurité de l’Abonné en spécifiant l’authentification SQL Server ou si vous modifiez les informations de connexion pour l’authentification SQL Server, spécifiez la valeur subscriber_password pour @property et le nouveau mot de passe pour @value. Répétez l’étape 2, en spécifiant la valeur subscriber_login pour @property et le nouveau nom de connexion pour @value.

    Remarque

    Après avoir modifié le nom de connexion ou le mot de passe d'un Agent, vous devez arrêter et redémarrer celui-ci avant que la modification prenne effet.

    Important

    Lors de la configuration d'un serveur de publication avec un serveur de distribution distant, les valeurs fournies pour toutes les propriétés, y compris distrib_job_login et distrib_job_password, sont envoyées en texte brut au serveur de distribution. Vous devez chiffrer la connexion entre le serveur de publication et son serveur de distribution distant avant d'exécuter cette procédure stockée. Pour plus d’informations, consultez Activer des connexions chiffrées dans le moteur de base de données (Gestionnaire de configuration SQL Server).

Pour modifier les paramètres de sécurité relatifs à l'Agent de distribution pour un abonnement par extraction

  1. Sur l’Abonné, exécutez sp_helppullsubscription, en spécifiant @publication. Cela retourne les propriétés de l'abonnement, y compris les paramètres de sécurité relatifs à l'Agent de distribution qui s'exécute sur l'Abonné.

  2. Sur la base de données d’abonnement de l’Abonné, exécutez sp_change_subscription_properties, en spécifiant @publisher, @publisher_db, @publication, le nom de la propriété de sécurité pour @property et la nouvelle valeur de la propriété pour @value.

  3. Répétez l'étape 2 pour chacune des propriétés de sécurité suivantes à modifier :

    • Pour changer le compte Windows sous lequel l’agent s’exécute ou seulement le mot de passe de ce compte, spécifiez la valeur distrib_job_password pour @property et un nouveau mot de passe pour @value. Si vous changez le compte, répétez l’étape 2 en spécifiant la valeur distrib_job_login pour @property et le nouveau compte Windows pour @value.

    • Pour changer le mode de sécurité utilisé quand vous vous connectez au serveur de distribution, spécifiez la valeur distributor_security_mode pour @property et la valeur 1 (authentification intégrée Windows) ou 0 (authentification SQL Server) pour @value.

    • Si vous changez le mode de sécurité du serveur de distribution en spécifiant l’authentification SQL Server ou si vous modifiez les informations de connexion pour l’authentification SQL Server, spécifiez la valeur distributor_password pour @property et le nouveau mot de passe pour @value. Répétez l’étape 2, en spécifiant la valeur distributor_login pour @property et le nouveau nom de connexion pour @value.

    Remarque

    Après avoir modifié le nom de connexion ou le mot de passe d'un Agent, vous devez arrêter et redémarrer celui-ci avant que la modification prenne effet.

Pour modifier les paramètres de sécurité relatifs à l'Agent de fusion pour un abonnement par émission de données

  1. Sur la base de données de publication du serveur de publication, exécutez sp_helpmergesubscription, en spécifiant @publication, @subscriber, et @subscriber_db. Cela retourne les propriétés de l'abonnement, y compris les paramètres de sécurité relatifs à l'Agent de fusion qui s'exécute sur le serveur de distribution.

  2. Sur la base de données de publication du serveur de publication, exécutez sp_changemergesubscription, en spécifiant @publication, @subscriber, @subscriber_db, le nom de la propriété de sécurité pour @property et la nouvelle valeur de la propriété pour @value.

  3. Répétez l'étape 2 pour chacune des propriétés de sécurité suivantes à modifier :

    • Pour changer le compte Windows sous lequel l’agent s’exécute ou seulement le mot de passe de ce compte, spécifiez la valeur merge_job_password pour @property et un nouveau mot de passe pour @value. Si vous changez le compte, répétez l’étape 2 en spécifiant la valeur merge_job_login pour @property et le nouveau compte Windows pour @value.

    • Pour changer le mode de sécurité utilisé quand vous vous connectez à l’Abonné, spécifiez la valeur subscriber_security_mode pour @property et la valeur 1 (authentification Windows intégrée) ou 0 (authentification SQL Server) pour @value.

    • Si vous changez le mode de sécurité de l’Abonné en spécifiant l’authentification SQL Server ou si vous modifiez les informations de connexion pour l’authentification SQL Server, spécifiez la valeur subscriber_password pour @property et le nouveau mot de passe pour @value. Répétez l’étape 2, en spécifiant la valeur subscriber_login pour @property et le nouveau nom de connexion pour @value.

    • Pour changer le mode de sécurité utilisé quand vous vous connectez au serveur de publication, spécifiez la valeur publisher_security_mode pour @property et la valeur 1 (authentification Windows intégrée) ou 0 (authentification SQL Server) pour @value.

    • Si vous changez le mode de sécurité du serveur de publication en spécifiant l’authentification SQL Server ou si vous modifiez les informations de connexion pour l’authentification SQL Server, spécifiez la valeur publisher_password pour @propertyet le nouveau mot de passe pour @value. Répétez l’étape 2, en spécifiant la valeur publisher_login pour @property et le nouveau nom de connexion pour @value.

    Remarque

    Après avoir modifié le nom de connexion ou le mot de passe d'un Agent, vous devez arrêter et redémarrer celui-ci avant que la modification prenne effet.

    Important

    Lors de la configuration d'un serveur de publication avec un serveur de distribution distant, les valeurs fournies pour toutes les propriétés, y compris merge_job_login et merge_job_password, sont envoyées en texte brut au serveur de distribution. Vous devez chiffrer la connexion entre le serveur de publication et son serveur de distribution distant avant d'exécuter cette procédure stockée. Pour plus d’informations, consultez Activer des connexions chiffrées dans le moteur de base de données (Gestionnaire de configuration SQL Server).

Pour modifier les paramètres de sécurité relatifs à l'Agent de fusion pour un abonnement par extraction

  1. Sur l’Abonné, exécutez sp_helpmergepullsubscription, en spécifiant @publication. Cela retourne les propriétés de l'abonnement, y compris les paramètres de sécurité relatifs à l'Agent de fusion qui s'exécute sur l'Abonné.

  2. Sur la base de données d’abonnement de l’Abonné, exécutez sp_change_subscription_properties, en spécifiant @publisher, @publisher_db, @publication, le nom de la propriété de sécurité pour @property et la nouvelle valeur de la propriété pour @value.

  3. Répétez l'étape 2 pour chacune des propriétés de sécurité suivantes à modifier :

    • Pour changer le compte Windows sous lequel l’agent s’exécute ou seulement le mot de passe de ce compte, spécifiez la valeur merge_job_password pour @property et un nouveau mot de passe pour @value. Si vous changez le compte, répétez l’étape 2 en spécifiant la valeur merge_job_login pour @property et le nouveau compte Windows pour @value.

    • Pour changer le mode de sécurité utilisé quand vous vous connectez au serveur de distribution, spécifiez la valeur distributor_security_mode pour @property et la valeur 1 (authentification intégrée Windows) ou 0 (authentification SQL Server) pour @value.

    • Si vous changez le mode de sécurité du serveur de distribution en spécifiant l’authentification SQL Server ou si vous modifiez les informations de connexion pour l’authentification SQL Server, spécifiez la valeur distributor_password pour @property et le nouveau mot de passe pour @value. Répétez l’étape 2, en spécifiant la valeur distributor_login pour @property et le nouveau nom de connexion pour @value.

    • Pour changer le mode de sécurité utilisé quand vous vous connectez au serveur de publication, spécifiez la valeur publisher_security_mode pour @property et la valeur 1 (authentification Windows intégrée) ou 0 (authentification SQL Server) pour @value.

    • Si vous changez le mode de sécurité du serveur de publication en spécifiant l’authentification SQL Server ou si vous modifiez les informations de connexion pour l’authentification SQL Server, spécifiez la valeur publisher_password pour @propertyet le nouveau mot de passe pour @value. Répétez l’étape 2, en spécifiant la valeur publisher_login pour @property et le nouveau nom de connexion pour @value.

    Remarque

    Après avoir modifié le nom de connexion ou le mot de passe d'un Agent, vous devez arrêter et redémarrer celui-ci avant que la modification prenne effet.

Pour modifier les paramètres de sécurité relatifs à l'Agent d'instantané pour générer un instantané filtré pour un Abonné

  1. Sur le serveur de publication, exécutez sp_helpdynamicsnapshot_job, en spécifiant @publication. Dans le jeu de résultats, notez la valeur de job_name pour la partition de l'Abonné à modifier.

  2. Sur le serveur de publication, exécutez sp_changedynamicsnapshot_job, en spécifiant @publication, la valeur obtenue à l’étape 1 pour dynamic_snapshot_jobname ainsi qu’un nouveau mot de passe pour @job_password ou un nom de connexion et un mot de passe pour le compte Windows sous lequel l’agent s’exécute pour @job_login et @job_password.

    Important

    Lors de la configuration d'un serveur de publication avec un serveur de distribution distant, les valeurs fournies pour tous les paramètres, y compris job_login et job_password, sont envoyées en texte brut au serveur de distribution. Vous devez chiffrer la connexion entre le serveur de publication et son serveur de distribution distant avant d'exécuter cette procédure stockée. Pour plus d’informations, consultez Activer des connexions chiffrées dans le moteur de base de données (Gestionnaire de configuration SQL Server).

Pour modifier les paramètres de sécurité relatifs à l'Agent de lecture de la file d'attente

  1. Sur le serveur de distribution, exécutez sp_helpqreader_agent. Cela retourne le compte Windows actuel sous lequel l'Agent de lecture de la file d'attente s'exécute.

    • Sur le serveur de distribution, exécutez sp_changeqreader_agent, en spécifiant les paramètres du compte Windows pour @job_login et @job_password.

    Remarque

    Après avoir modifié le nom de connexion ou le mot de passe d'un Agent, vous devez arrêter et redémarrer celui-ci avant que la modification prenne effet. Il existe un Agent de lecture de la file d'attente pour chaque base de données de distribution. La modification des paramètres de sécurité pour l'agent affecte les paramètres de toutes les publications sur tous les serveurs de publication qui utilisent cette base de données de distribution.

  2. L'Agent de lecture de la file d'attente établit des connexions avec l'Abonné en utilisant le même contexte de connexion que l'Agent de distribution pour l'abonnement.

Pour modifier le mode de sécurité utilisé par un Abonné avec mise à jour immédiate lors de la connexion au serveur de publication

  1. Dans la base de données d’abonnement de l’Abonné, exécutez sp_link_publication. Spécifiez @publisher, de @publication, le nom de la base de données de publication pour @publisher_dbet l'une des valeurs suivantes pour @security_mode:

    • 0 pour utiliser l'authentification SQL Server pour effectuer des mises à jour sur le serveur de publication. Avec cette option, vous devez spécifier une connexion valide sur le serveur de publication pour @login et @password.

    • 1 pour utiliser le contexte de sécurité de l'utilisateur qui apporte des modifications sur l'Abonné lors de la connexion au serveur de publication. Consultez sp_link_publication pour connaître les restrictions en rapport avec ce mode de sécurité.

    • 2 pour utiliser une connexion de serveur lié existante définie par l’utilisateur créée à l’aide de sp_addlinkedserver (Transact-SQL).

Pour modifier le mot de passe d'un serveur de distribution distant

  1. Sur la base de données de distribution du serveur de distribution, exécutez sp_changedistributor_password, en spécifiant le nouveau mot de passe pour cette connexion pour @password.

    Important

    Ne modifiez pas directement le mot de passe pour distributor_admin .

  2. Sur chaque serveur de publication qui utilise ce serveur de distribution distant, exécutez sp_changedistributor_password, en spécifiant le mot de passe défini à l’étape 1 pour @password.

Utilisation d'objets RMO (Replication Management Objects)

Important

Lorsque c'est possible, demande aux utilisateurs de fournir les informations d'identification au moment de l'exécution. Si vous devez stocker des informations d’identification, utilisez les services de chiffrement fournis par Microsoft Windows .NET Framework.

Pour modifier toutes les instances d'un mot de passe stockées sur un serveur de réplication

  1. Créez une connexion au serveur de réplication en utilisant la classe ServerConnection .

  2. Créez une instance de la classe ReplicationServer au moyen de la connexion créée à l'étape 1.

  3. Appelez la méthode ChangeReplicationServerPasswords . Spécifiez les paramètres suivants :

    • security_mode – une valeur ReplicationSecurityMode qui spécifie le type d'authentification pour lequel toutes les instances du mot de passe sont modifiées.

    • login – la connexion pour laquelle toutes les instances du mot de passe sont modifiées.

    • password – la nouvelle valeur du mot de passe.

      Important

      Lorsque c'est possible, demande aux utilisateurs de fournir les informations d'identification au moment de l'exécution. Si vous devez stocker des informations d'identification, utilisez les Services de chiffrement fournis par Windows .NET Framework.

      Remarque

      Seul un membre du rôle serveur fixe sysadmin peut appeler cette méthode.

  4. Répétez les étapes 1-3 pour chaque serveur dans la topologie de réplication où le mot de passe doit être actualisé.

Pour modifier les paramètres de sécurité relatifs à l'Agent de distribution pour un abonnement par émission de données à une publication transactionnelle

  1. Créez une connexion au serveur de publication en utilisant la classe ServerConnection .

  2. Créez une instance de la classe TransSubscription.

  3. Définissez les propriétés PublicationName, DatabaseName, SubscriberNameet SubscriptionDBName pour l'abonnement et définissez la connexion créée à l'étape 1 pour la propriété ConnectionContext .

  4. Appelez la méthode LoadProperties pour obtenir les propriétés de l'objet. Si cette méthode retourne false, soit les propriétés de l'abonnement ont été définies de manière incorrecte à l'étape 3, soit l'abonnement n'existe pas.

  5. Définissez une ou plusieurs des propriétés de sécurité suivantes sur l'instance de TransSubscription:

    • Pour modifier les informations d'identification relatives au compte Windows sous lequel l'agent s'exécute, définissez les champs Login et Password de SynchronizationAgentProcessSecurity.

    • Pour spécifier l'authentification intégrée Windows comme type d'authentification utilisé par l'agent lorsqu'il se connecte à l'Abonné, affectez la valeur WindowsAuthentication au champ SubscriberSecurity de la propriété P:Microsoft.SqlServer.Replication.Subscription.SubscriberSecurity.

    • Pour spécifier l'authentification SQL Server comme type d'authentification utilisé par l'agent lorsqu'il se connecte à l'Abonné, affectez la valeur WindowsAuthentication au champ SubscriberSecurity de la propriété falseet spécifiez les informations d'identification de connexion à l'Abonné pour les champs SqlStandardLogin et SqlStandardPassword .

      Remarque

      La connexion de l'agent au serveur de distribution est toujours établie à l'aide des informations d'identification Windows spécifiées par SynchronizationAgentProcessSecurity. Ce compte permet également d'établir des connexions à distance à l'aide de l'authentification Windows.

  6. (Facultatif) Si vous avez spécifié la valeur true pour CachePropertyChanges, appelez la méthode CommitPropertyChanges pour valider les modifications sur le serveur. Si vous avez spécifié la valeur false pour CachePropertyChanges (valeur par défaut), les modifications sont envoyées immédiatement au serveur.

Pour modifier les paramètres de sécurité relatifs à l'Agent de distribution pour un abonnement par extraction à une publication transactionnelle

  1. Créez une connexion à l'Abonné en utilisant la classe ServerConnection .

  2. Créez une instance de la classe TransPullSubscription.

  3. Définissez les propriétés PublicationName, DatabaseName, PublisherNameet PublicationDBName pour l'abonnement et définissez la connexion créée à l'étape 1 pour la propriété ConnectionContext .

  4. Appelez la méthode LoadProperties pour obtenir les propriétés de l'objet. Si cette méthode retourne false, soit les propriétés de l'abonnement ont été définies de manière incorrecte à l'étape 3, soit l'abonnement n'existe pas.

  5. Définissez une ou plusieurs des propriétés de sécurité suivantes sur l'instance de TransPullSubscription:

    • Pour modifier les informations d'identification relatives au compte Windows sous lequel l'agent s'exécute, définissez les champs Login et Password de SynchronizationAgentProcessSecurity.

    • Pour spécifier l'authentification intégrée Windows comme type d'authentification utilisé par l'agent lorsqu'il se connecte au serveur de distribution, affectez la valeur WindowsAuthentication au champ DistributorSecurity de la propriété P:Microsoft.SqlServer.Replication.Subscription.SubscriberSecurity.

    • Pour spécifier l'authentification SQL Server comme type d'authentification utilisé par l'agent lorsqu'il se connecte au serveur de distribution, affectez la valeur WindowsAuthentication au champ DistributorSecurity de la propriété falseet spécifiez les informations d'identification de connexion au serveur de distribution pour les champs SqlStandardLogin et SqlStandardPassword .

      Remarque

      La connexion de l'agent à l'Abonné est toujours établie à l'aide des informations d'identification Windows spécifiées par SynchronizationAgentProcessSecurity. Ce compte permet également d'établir des connexions à distance à l'aide de l'authentification Windows.

  6. (Facultatif) Si vous avez spécifié la valeur true pour CachePropertyChanges, appelez la méthode CommitPropertyChanges pour valider les modifications sur le serveur. Si vous avez spécifié la valeur false pour CachePropertyChanges (valeur par défaut), les modifications sont envoyées immédiatement au serveur.

Pour modifier les paramètres de sécurité relatifs à l'Agent de fusion pour un abonnement par extraction à une publication de fusion

  1. Créez une connexion à l'Abonné en utilisant la classe ServerConnection .

  2. Créez une instance de la classe MergePullSubscription.

  3. Définissez les propriétés PublicationName, DatabaseName, PublisherNameet PublicationDBName pour l'abonnement et définissez la connexion créée à l'étape 1 pour la propriété ConnectionContext .

  4. Appelez la méthode LoadProperties pour obtenir les propriétés de l'objet. Si cette méthode retourne false, soit les propriétés de l'abonnement ont été définies de manière incorrecte à l'étape 3, soit l'abonnement n'existe pas.

  5. Définissez une ou plusieurs des propriétés de sécurité suivantes sur l'instance de MergePullSubscription:

    • Pour modifier les informations d'identification relatives au compte Windows sous lequel l'agent s'exécute, définissez les champs Login et Password de SynchronizationAgentProcessSecurity.

    • Pour spécifier l'authentification intégrée Windows comme type d'authentification utilisé par l'agent lorsqu'il se connecte au serveur de distribution, affectez la valeur WindowsAuthentication au champ DistributorSecurity de la propriété P:Microsoft.SqlServer.Replication.Subscription.SubscriberSecurity.

    • Pour spécifier l'authentification SQL Server comme type d'authentification utilisé par l'agent lorsqu'il se connecte au serveur de distribution, affectez la valeur WindowsAuthentication au champ DistributorSecurity de la propriété falseet spécifiez les informations d'identification de connexion au serveur de distribution pour les champs SqlStandardLogin et SqlStandardPassword .

    • Pour spécifier l'authentification intégrée Windows comme type d'authentification utilisé par l'agent lorsqu'il se connecte au serveur de publication, affectez la valeur WindowsAuthentication au champ PublisherSecurity de la propriété P:Microsoft.SqlServer.Replication.Subscription.SubscriberSecurity.

    • Pour spécifier l'authentification SQL Server comme type d'authentification utilisé par l'agent lorsqu'il se connecte au serveur de publication, affectez la valeur WindowsAuthentication au champ PublisherSecurity de la propriété falseet spécifiez les informations d'identification de connexion au serveur de publication pour les champs SqlStandardLogin et SqlStandardPassword .

      Remarque

      La connexion de l'agent à l'Abonné est toujours établie à l'aide des informations d'identification Windows spécifiées par SynchronizationAgentProcessSecurity. Ce compte permet également d'établir des connexions à distance à l'aide de l'authentification Windows.

  6. (Facultatif) Si vous avez spécifié la valeur true pour CachePropertyChanges, appelez la méthode CommitPropertyChanges pour valider les modifications sur le serveur. Si vous avez spécifié la valeur false pour CachePropertyChanges (valeur par défaut), les modifications sont envoyées immédiatement au serveur.

Pour modifier les paramètres de sécurité relatifs à l'Agent de fusion pour un abonnement par émission de données à une publication de fusion

  1. Créez une connexion au serveur de publication en utilisant la classe ServerConnection .

  2. Créez une instance de la classe MergeSubscription.

  3. Définissez les propriétés PublicationName, DatabaseName, SubscriberNameet SubscriptionDBName pour l'abonnement et définissez la connexion créée à l'étape 1 pour la propriété ConnectionContext .

  4. Appelez la méthode LoadProperties pour obtenir les propriétés de l'objet. Si cette méthode retourne false, soit les propriétés de l'abonnement ont été définies de manière incorrecte à l'étape 3, soit l'abonnement n'existe pas.

  5. Définissez une ou plusieurs des propriétés de sécurité suivantes sur l'instance de MergeSubscription:

    • Pour modifier les informations d'identification relatives au compte Windows sous lequel l'agent s'exécute, définissez les champs Login et Password de SynchronizationAgentProcessSecurity.

    • Pour spécifier l'authentification intégrée Windows comme type d'authentification utilisé par l'agent lorsqu'il se connecte à l'Abonné, affectez la valeur WindowsAuthentication au champ SubscriberSecurity de la propriété P:Microsoft.SqlServer.Replication.Subscription.SubscriberSecurity.

    • Pour spécifier l'authentification SQL Server comme type d'authentification utilisé par l'agent lorsqu'il se connecte à l'Abonné, affectez la valeur WindowsAuthentication au champ SubscriberSecurity de la propriété falseet spécifiez les informations d'identification de connexion à l'Abonné pour les champs SqlStandardLogin et SqlStandardPassword .

    • Pour spécifier l'authentification intégrée Windows comme type d'authentification utilisé par l'agent lorsqu'il se connecte au serveur de publication, affectez la valeur WindowsAuthentication au champ PublisherSecurity de la propriété P:Microsoft.SqlServer.Replication.Subscription.SubscriberSecurity.

    • Pour spécifier l'authentification SQL Server comme type d'authentification utilisé par l'agent lorsqu'il se connecte au serveur de publication, affectez la valeur WindowsAuthentication au champ PublisherSecurity de la propriété falseet spécifiez les informations d'identification de connexion au serveur de publication pour les champs SqlStandardLogin et SqlStandardPassword .

      Remarque

      La connexion de l'agent au serveur de distribution est toujours établie à l'aide des informations d'identification Windows spécifiées par SynchronizationAgentProcessSecurity. Ce compte permet également d'établir des connexions à distance à l'aide de l'authentification Windows.

  6. (Facultatif) Si vous avez spécifié la valeur true pour CachePropertyChanges, appelez la méthode CommitPropertyChanges pour valider les modifications sur le serveur. Si vous avez spécifié la valeur false pour CachePropertyChanges (valeur par défaut), les modifications sont envoyées immédiatement au serveur.

Pour modifier les informations de connexion utilisées par un Abonné de mise à jour immédiate lorsqu'il se connecte au serveur de publication transactionnelle

  1. Créez une connexion à l'Abonné en utilisant la classe ServerConnection .

  2. Créez une instance de la classe ReplicationDatabase pour la base de données d'abonnement. Spécifiez Name et la classe ServerConnection créée à l'étape 1 pour la propriété ConnectionContext.

  3. Appelez la méthode LoadProperties pour obtenir les propriétés de l'objet. Si cette méthode retourne false, soit les propriétés de la base de données ont été définies de manière incorrecte à l'étape 2, soit la base de données d'abonnement n'existe pas.

  4. Appelez la méthode LinkPublicationForUpdateableSubscription , en passant les paramètres suivants :

    • Publisher – nom du serveur de publication.

    • PublisherDB – nom de la base de données de publication.

    • Publication – nom de la publication à laquelle l'Abonné de mise à jour immédiate est abonné.

    • Distributor – nom du serveur de distribution.

    • PublisherSecurity - A PublisherConnectionSecurityContext qui spécifie le type de mode de sécurité utilisé par l'Abonné de mise à jour immédiate lorsqu'il se connecte au serveur de publication, et les informations d'identification de connexion pour cette connexion.

Exemple (RMO)

Cet exemple vérifie le nom d'accès fourni et modifie tous les mots de passe relatifs à la connexion Windows fournie ou au compte de connexion SQL Server fourni, stockés par la réplication sur le serveur.

// Set the Distributor and distribution database names.
string serverName = publisherInstance;

ReplicationServer server;

// Create a connection to the Distributor using Windows Authentication.
ServerConnection conn = new ServerConnection(serverName);

try
{
    // Open the connection. 
    conn.Connect();

    server = new ReplicationServer(conn);

    // Load server properties, if it exists.
    if (server.LoadProperties())
    {
        string[] slash = new string[1];
        slash[0] = @"\";

        // If the login is in the form string\string, assume we are 
        // changing the password for a Windows login.
        if (login.Split(slash, StringSplitOptions.None).Length == 2)
        {
            //Change the password for the all connections that use
            // the Windows login. 
            server.ChangeReplicationServerPasswords(
                    ReplicationSecurityMode.Integrated, login, password);
        }
        else
        {
            // Change the password for the all connections that use
            // the SQL Server login. 
            server.ChangeReplicationServerPasswords(
                    ReplicationSecurityMode.SqlStandard, login, password);
        }
    }
    else
    {
        throw new ApplicationException(String.Format(
            "Properties for {0} could not be retrieved.", publisherInstance));
    }
}
catch (Exception ex)
{
    // Implement the appropriate error handling here. 
    throw new ApplicationException(String.Format(
        "An error occurred when changing agent login " +
        " credentials on {0}.",serverName), ex);
}
finally
{
    conn.Disconnect();
}
' Set the Distributor and distribution database names.
Dim serverName As String = publisherInstance

Dim server As ReplicationServer

' Create a connection to the Distributor using Windows Authentication.
Dim conn As ServerConnection = New ServerConnection(serverName)

Try
    ' Open the connection. 
    conn.Connect()

    server = New ReplicationServer(conn)

    ' Load server properties, if it exists.
    If server.LoadProperties() Then

        ' If the login is in the form string\string, assume we are 
        ' changing the password for a Windows login.
        If login.Split("\").Length = 2 Then

            ' Change the password for the all connections that use
            ' the Windows login. 
            server.ChangeReplicationServerPasswords( _
            ReplicationSecurityMode.Integrated, login, password)
        Else

            ' Change the password for the all connections that use
            ' the SQL Server login. 
            server.ChangeReplicationServerPasswords( _
            ReplicationSecurityMode.SqlStandard, login, password)
        End If
    Else
        Throw New ApplicationException(String.Format( _
         "Properties for {0} could not be retrieved.", publisherInstance))
    End If
Catch ex As Exception
    ' Implement the appropriate error handling here. 
    Throw New ApplicationException(String.Format( _
     "An error occurred when changing agent login " + _
     " credentials on {0}.", serverName), ex)
Finally
    conn.Disconnect()
End Try

Suivi : Après avoir modifié les paramètres de sécurité de la réplication

Après avoir modifié le nom de connexion ou le mot de passe d'un Agent, vous devez arrêter et redémarrer celui-ci avant que la modification prenne effet.

Voir aussi

Concepts liés à RMO (Replication Management Objects)
Mettre à niveau les scripts de réplication (programmation Transact-SQL de la réplication)
Identité et contrôle d’accès pour la réplication
Modèle de sécurité de l'Agent de réplication
Bonnes pratiques en matière de sécurité de la réplication
Afficher et modifier les paramètres de sécurité de la réplication
Concepts liés aux procédures stockées système de réplication