Afficher et modifier les paramètres de sécurité de la réplication
Cette rubrique explique comment afficher et modifier les paramètres de sécurité de réplication dans SQL Server 2014 à 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 :
Pour afficher et modifier les paramètres de sécurité de la réplication à l'aide de :
Suivi : Après avoir modifié les paramètres de sécurité de la réplication
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 :
La boîte de dialogue Mettre à jour les mots de passe de réplication, disponible à partir du 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 de la topologie de réplication, utilisez cette boîte de dialogue plutôt que de mettre à jour le mot de passe pour chaque agent utilisant 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.
La page Sécurité de l’agent de la boîte de dialogue Propriétés de la 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.
La boîte de dialogue Propriétés de l’abonnement - <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.
Les boîtes de dialogue Propriétés du serveur de distribution - <Serveur_distribution> et Propriétés de la base de données de distribution - <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.
La boîte de dialogue Propriétés du serveur de publication - <Serveur_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
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.
Connectez-vous au serveur dans SQL Server Management Studio, puis développez le nœud du serveur.
Cliquez avec le bouton droit sur le dossier Réplication , puis cliquez sur Mettre à jour les mots de passe de réplication.
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.
Cliquez sur OK.
Pour modifier les paramètres de sécurité pour l'Agent d'instantané
Dans la page Sécurité de l’agent de la boîte de dialogue Propriétés de la publication - <Publication>, cliquez sur le bouton Paramètres de sécurité à côté de la zone de texte Agent d’instantané.
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 .
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.
Cliquez sur OK.
Pour modifier les paramètres de sécurité pour l'Agent de lecture du journal
Dans la page Sécurité de l’agent de la boîte de dialogue Propriétés de la publication - <Publication>, cliquez sur le bouton Paramètres de sécurité à côté de la zone de texte Agent de lecture du journal.
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 .
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.
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
Dans la page Serveurs de publication de la boîte de dialogue Propriétés du serveur de distribution - <Serveur_distribution>, cliquez sur le bouton des propriétés (...) à côté d’un serveur de publication.
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.
Cliquez sur OK.
Pour modifier les paramètres de sécurité relatifs à l'Agent de distribution pour un abonnement par émission de données
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é.
Cliquez sur OK.
Pour modifier les paramètres de sécurité relatifs à l'Agent de distribution pour un abonnement par extraction
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 .
Cliquez sur OK.
Pour modifier les paramètres de sécurité relatifs à l'Agent de fusion pour un abonnement par émission de données
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 .
Cliquez sur OK.
Pour modifier les paramètres de sécurité relatifs à l'Agent de fusion pour un abonnement par extraction
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 .
Cliquez sur OK.
Pour modifier le compte sous lequel s'exécute l'Agent de lecture de la file d'attente
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 des propriétés (...) à côté de la base de données de distribution.
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 Paramètres de sécurité à côte de la zone de texte Compte de processus de l’agent.
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 .
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
Dans la page Serveurs de publication de la boîte de dialogue Propriétés du serveur de distribution - <serveur_distribution>, cliquez sur le bouton des propriétés (...) à côté du serveur de publication.
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.
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
Dans la boîte de dialogue Propriétés de l’abonnement - <Abonnement> sur l’Abonné, cliquez sur la ligne Connexion du serveur de publication, puis cliquez sur le bouton Propriétés (...) de la ligne.
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.
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 par émission de données, 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
Dans la page Serveurs de publication de la boîte de dialogue Propriétés du serveur de distribution - <Serveur_distribution>, entrez un mot de passe fort dans les zones de texte Mot de passe et Confirmer le mot de passe.
Cliquez sur OK.
Dans la page Général de la boîte de dialogue Propriétés du serveur de publication - <Serveur_publication>, entrez un mot de passe fort dans les zones de texte Mot de passe et Confirmer le mot de passe.
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
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é pour @login et le nouveau mot de passe du compte ou de 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.
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é
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é.
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 modifier le compte Windows sous lequel l'agent s'exécute ou seulement le mot de passe pour ce compte, spécifiez @job_login et @job_password.
Pour modifier 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
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.
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 modifier le compte Windows sous lequel l'agent s'exécute ou seulement le mot de passe pour ce compte, spécifiez @job_login et @job_password.
Pour modifier 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
Exécutez sp_helpsubscriptionsur la base de données de publication du serveur de publication, 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.
Exécutez sp_changesubscriptionsur la base de données de publication du serveur de publication, en spécifiant @publication, @subscriber, @subscriber_db, la valeur all pour @article, le nom de la propriété de sécurité pour @propertyet la nouvelle valeur de la propriété pour @value.
Répétez l'étape 2 pour chacune des propriétés de sécurité suivantes à modifier :
Pour modifier 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. Lorsque vous modifiez le compte lui-même, répétez l'étape 2 en spécifiant la valeur distrib_job_login pour @property et le nouveau compte Windows pour @value.
Pour modifier le mode de sécurité utilisé lorsque vous vous connectez à l'Abonné, spécifiez la valeur subscriber_security_mode pour @property et la valeur 1 (authentification intégrée Windows) ou 0 (authentification SQL Server) pour @value.
Si vous modifiez 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
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é.
Exécutez sp_change_subscription_propertiessur la base de données d'abonnement de l'Abonné, en spécifiant @publisher, @publisher_db, @publication, le nom de la propriété de sécurité pour @propertyet la nouvelle valeur de la propriété pour @value.
Répétez l'étape 2 pour chacune des propriétés de sécurité suivantes à modifier :
Pour modifier 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. Lorsque vous modifiez le compte lui-même, répétez l'étape 2 en spécifiant la valeur distrib_job_login pour @property et le nouveau compte Windows pour @value.
Pour modifier le mode de sécurité utilisé lorsque 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 modifiez 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
Exécutez sp_helpmergesubscriptionsur la base de données de publication du serveur de publication, en spécifiant @publication, @subscriberet @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.
Exécutez sp_changemergesubscriptionsur la base de données de publication du serveur de publication, en spécifiant @publication, @subscriber, @subscriber_db, le nom de la propriété de sécurité pour @propertyet la nouvelle valeur de la propriété pour @value.
Répétez l'étape 2 pour chacune des propriétés de sécurité suivantes à modifier :
Pour modifier 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. Lorsque vous modifiez le compte lui-même, répétez l'étape 2 en spécifiant la valeur merge_job_login pour @property et le nouveau compte Windows pour @value.
Pour modifier le mode de sécurité utilisé lorsque vous vous connectez à l'Abonné, spécifiez la valeur subscriber_security_mode pour @property et la valeur 1 (authentification intégrée Windows) ou 0 (authentification SQL Server) pour @value.
Si vous modifiez 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 modifier le mode de sécurité utilisé lorsque vous vous connectez au serveur de publication, spécifiez la valeur publisher_security_mode pour @property et la valeur 1 (authentification intégrée Windows) ou 0 (authentification SQL Server) pour @value.
Si vous modifiez 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 @property et 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
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é.
Exécutez sp_change_subscription_propertiessur la base de données d'abonnement de l'Abonné, en spécifiant @publisher, @publisher_db, @publication, le nom de la propriété de sécurité pour @propertyet la nouvelle valeur de la propriété pour @value.
Répétez l'étape 2 pour chacune des propriétés de sécurité suivantes à modifier :
Pour modifier 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. Lorsque vous modifiez le compte lui-même, répétez l'étape 2 en spécifiant la valeur merge_job_login pour @property et le nouveau compte Windows pour @value.
Pour modifier le mode de sécurité utilisé lorsque 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 modifiez 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 modifier le mode de sécurité utilisé lorsque vous vous connectez au serveur de publication, spécifiez la valeur publisher_security_mode pour @property et la valeur 1 (authentification intégrée Windows) ou 0 (authentification SQL Server) pour @value.
Si vous modifiez 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 @property et 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é
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.
Sur le serveur de publication, exécutez sp_changedynamicsnapshot_job, en spécifiant @publication, la valeur obtenue à l'étape 1 pour @dynamic_snapshot_jobnameet 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
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_passwsord.
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.
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
Dans la base de données d’abonnement de l’Abonné, exécutez sp_link_publication. Spécifiez @publisher, @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 et créée à l’aide de sp_addlinkedserver (Transact-SQL).
Pour modifier le mot de passe d'un serveur de distribution distant
Exécutez sp_changedistributor_passwordsur la base de données de distribution du serveur de distribution, 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 .
Exécutez sp_changedistributor_passwordsur chaque serveur de publication qui utilise ce serveur de distribution distant, 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
Créez une connexion au serveur de réplication en utilisant la classe ServerConnection .
Créez une instance de la classe ReplicationServer au moyen de la connexion créée à l'étape 1.
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.
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
Créez une connexion au serveur de publication en utilisant la classe ServerConnection .
Créez une instance de la classe TransSubscription.
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 .
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.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
true
au champ WindowsAuthentication de la propriété SubscriberSecurity.Pour spécifier l’authentification SQL Server comme type d’authentification que l’agent utilise lorsqu’il se connecte à l’Abonné, définissez le WindowsAuthentication champ de la SubscriberSecurity propriété
false
sur , puis spécifiez les informations d’identification de connexion de l’Abonné pour les champs et SqlStandardPassword les SqlStandardLogin champs.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.
(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 valeurfalse
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
Créez une connexion à l'Abonné en utilisant la classe ServerConnection .
Créez une instance de la classe TransPullSubscription.
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 .
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.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
true
au champ WindowsAuthentication de la propriété DistributorSecurity.Pour spécifier l’authentification SQL Server comme type d’authentification que l’agent utilise lorsqu’il se connecte au serveur de distribution, définissez le WindowsAuthentication champ de la DistributorSecurity propriété
false
sur , puis spécifiez les informations d’identification de connexion du serveur de distribution pour les champs et SqlStandardPassword les SqlStandardLogin champs.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.
(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 valeurfalse
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
Créez une connexion à l'Abonné en utilisant la classe ServerConnection .
Créez une instance de la classe MergePullSubscription.
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 .
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.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
true
au champ WindowsAuthentication de la propriété DistributorSecurity.Pour spécifier l’authentification SQL Server comme type d’authentification que l’agent utilise lorsqu’il se connecte au serveur de distribution, définissez le WindowsAuthentication champ de la DistributorSecurity propriété
false
sur , puis spécifiez les informations d’identification de connexion du serveur de distribution pour les champs et SqlStandardPassword les SqlStandardLogin champs.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
true
au champ WindowsAuthentication de la propriété PublisherSecurity.Pour spécifier l’authentification SQL Server comme type d’authentification que l’agent utilise lorsqu’il se connecte au serveur de publication, définissez le WindowsAuthentication champ de la PublisherSecurity propriété
false
sur , puis spécifiez les informations d’identification de connexion du serveur de publication pour les champs et SqlStandardPassword les SqlStandardLogin champs.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.
(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 valeurfalse
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
Créez une connexion au serveur de publication en utilisant la classe ServerConnection .
Créez une instance de la classe MergeSubscription.
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 .
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.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
true
au champ WindowsAuthentication de la propriété SubscriberSecurity.Pour spécifier l’authentification SQL Server comme type d’authentification que l’agent utilise lorsqu’il se connecte à l’Abonné, définissez le WindowsAuthentication champ de la SubscriberSecurity propriété
false
sur , puis spécifiez les informations d’identification de connexion de l’Abonné pour les champs et SqlStandardPassword les SqlStandardLogin champs.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
true
au champ WindowsAuthentication de la propriété PublisherSecurity.Pour spécifier l’authentification SQL Server comme type d’authentification que l’agent utilise lorsqu’il se connecte au serveur de publication, définissez le WindowsAuthentication champ de la PublisherSecurity propriété
false
sur , puis spécifiez les informations d’identification de connexion du serveur de publication pour les champs et SqlStandardPassword les SqlStandardLogin champs.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.
(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 valeurfalse
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
Créez une connexion à l'Abonné en utilisant la classe ServerConnection .
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.
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.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[1] = @"\";
// 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 occured 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 occured 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)
Gérer les comptes de connexion et les mots de passe dans 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
sécurité Réplication SQL Server
Concepts liés aux procédures stockées système de réplication