Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Met het beveiligingsmodel van de replicatieagent kunt u gedetailleerde controle uitoefenen over de accounts die door replicatieagents worden gebruikt voor uitvoering en het maken van verbindingen: voor elke agent kan een ander account worden opgegeven. Zie Identiteits- en toegangsbeheer voor replicatie voor meer informatie over het opgeven van accounts.
Het beveiligingsmodel van de replicatieagent is iets anders voor Azure SQL Managed Instance, omdat er geen Windows-accounts zijn waaronder de agents worden uitgevoerd. In plaats daarvan moet alles worden gedaan via SQL Server-verificatie.
Belangrijk
Wanneer een lid van de vaste serverfunctie sysadmin replicatie configureert, kunnen replicatieagents worden geconfigureerd om het SQL Server Agent-account te imiteren. Dit wordt gedaan door geen aanmelding en wachtwoord op te geven voor een replicatieagent; we raden deze methode echter niet aan. In plaats daarvan wordt u aangeraden, als best practice voor beveiliging, een account op te geven voor elke agent met de minimale machtigingen die worden beschreven in de sectie 'Machtigingen die vereist zijn voor agents' verderop in dit onderwerp.
Replicatieagents, zoals alle uitvoerbare bestanden, worden uitgevoerd onder de context van een Windows-account. De agents maken geïntegreerde Windows-beveiligingsverbindingen met behulp van dit account. Het account waaronder de agent wordt uitgevoerd, is afhankelijk van de manier waarop de agent wordt gestart.
De agent starten vanuit een SQL Server Agent-taak, de standaardwaarde: wanneer een SQL Server Agent-taak wordt gebruikt om een replicatieagent te starten, wordt de agent uitgevoerd onder de context van een account dat u opgeeft wanneer u replicatie configureert. Zie de sectie 'Agentbeveiliging onder SQL Server Agent' verderop in dit onderwerp voor meer informatie over SQL Server Agent en replicatie. Zie SQL Server Agent configureren voor informatie over de machtigingen die vereist zijn voor het account waaronder SQL Server Agent wordt uitgevoerd.
De agent starten vanuit een MS-DOS-opdrachtregel, rechtstreeks of via een script: de agent wordt uitgevoerd in de context van het account van de gebruiker die de agent uitvoert op de opdrachtregel.
De agent starten vanuit een toepassing die gebruikmaakt van RMO (Replication Management Objects) of een ActiveX-besturingselement: de agent wordt uitgevoerd in de context van de toepassing die RMO of het ActiveX-besturingselement aanroept.
Opmerking
ActiveX-besturingselementen zijn afgeschaft.
U wordt aangeraden verbindingen te maken in de context van geïntegreerde Windows-beveiliging. Voor compatibiliteit met eerdere versies kan SQL Server Security ook worden gebruikt. Zie Best practices voor replicatiebeveiliging voor meer informatie over aanbevolen procedures.
Machtigingen die zijn vereist voor agents
Voor de accounts waaronder agents worden uitgevoerd en verbindingen worden gemaakt, zijn verschillende machtigingen vereist. Deze machtigingen worden beschreven in de volgende tabel. We raden u aan dat elke agent wordt uitgevoerd onder een ander Windows-account en dat het account alleen de vereiste machtigingen mag krijgen. Zie Secure the Publisher voor informatie over de publicatietoegangslijst (PAL), die relevant is voor een aantal agents.
Opmerking
Gebruikersaccountbeheer (UAC) in sommige Windows-besturingssystemen kan beheerderstoegang tot de momentopnameshare voorkomen. Daarom moet u expliciet sharemachtigingen voor momentopnamen verlenen aan de Windows-accounts die worden gebruikt door de momentopnameagent, distributieagent en samenvoegagent. U moet dit doen, zelfs als de Windows-accounts lid zijn van de groep Administrators. Voor meer informatie, zie de map Momentopname beveiligen.
| Vertegenwoordiger | Permissions |
|---|---|
| Snapshotagent | Het Windows-account waaronder de agent wordt uitgevoerd, wordt gebruikt wanneer deze verbinding maakt met de distributeur. Dit account moet: -Minimaal lid zijn van de db_owner vaste databaserol in de distributiedatabase. -Lees-, schrijf- en wijzigingsmachtigingen voor de momentopnameshare hebben. Houd er rekening mee dat het account dat wordt gebruikt om aan te sluiten op de Publisher, minimaal lid moet zijn van de db_owner vaste databaserol in de publicatiedatabase. |
| Logboekleesagent | Het Windows-account waaronder de agent wordt uitgevoerd, wordt gebruikt wanneer deze verbinding maakt met de distributeur. Dit account moet minimaal lid zijn van de db_owner vaste databaserol in de distributiedatabase. Het account dat wordt gebruikt om verbinding te maken met de Publisher, moet minimaal lid zijn van de db_owner standaard databaserol in de publicatiedatabase. Wanneer u de opties alleen replicatieondersteuning, initialiseren met back-up, of initialiseren vanaf lsn kiest, moet u de logboeklezeragent uitvoeren nadat u sp_addsubscription hebt uitgevoerd, zodat u de set-up scripts naar de distributiedatabase kunt schrijven. De logboeklezeragent moet worden uitgevoerd onder een account dat lid is van de vaste serverfunctie sysadmin . Wanneer de optie sync_type is ingesteld op Automatisch, zijn er geen speciale acties voor de logboeklezeragent vereist. |
| Distributieagent voor een push-abonnement | Het Windows-account waaronder de agent wordt uitgevoerd, wordt gebruikt wanneer deze verbinding maakt met de distributeur. Dit account moet: -Minimaal lid zijn van de db_owner vaste databaserol in de distributiedatabase. -Wees lid van de PAL. -Leesrechten op de gedeelde momentopnameschijf hebben. -Zorg ervoor dat u leesrechten heeft voor de installatiemap van de OLE DB-provider als het abonnement bedoeld is voor een niet-SQL Server-abonnee. -Bij het repliceren van LOB-gegevens moet de distributieagent schrijfrechten hebben voor de replicatieC:\Program Files\Microsoft SQL Server\XX\COM-map waarbij XX de instanceID vertegenwoordigt. Het account dat wordt gebruikt om verbinding te maken met de abonnee, moet minimaal lid zijn van de db_owner vaste databaserol in de abonnementsdatabase of gelijkwaardige machtigingen hebben als het abonnement voor een niet-SQL Server-abonnee is. Houd er ook rekening mee dat u bij het gebruik van -subscriptionstreams >= 2 de distributieagent ook de machtiging Serverstatus weergeven moet verlenen aan de abonnees om impasses te detecteren. |
| Distributieagent voor een pull-abonnement | Het Windows-account waaronder de agent wordt uitgevoerd, wordt gebruikt wanneer deze verbinding maakt met de abonnee. Dit account moet: -Minimaal lid zijn van de db_owner vaste databaserol in de abonnementsdatabase. Het account dat wordt gebruikt om verbinding te maken met de distributeur, moet: -Minimaal lid zijn van de db_owner vaste databaserol in de distributiedatabase. -Wees lid van de PAL. -Leesrechten op de gedeelde momentopnameschijf hebben. -Bij het repliceren van LOB-gegevens moet de distributieagent schrijfrechten hebben voor de replicatieC:\Program Files\Microsoft SQL Server\XX\COM-map waarbij XX de instanceID vertegenwoordigt. Houd er rekening mee dat wanneer u -subscriptionstreams >= 2 op de distributieagent gebruikt, u ook de machtiging View Server State aan de abonnees moet verlenen om deadlocks te detecteren. |
| Agent samenvoegen voor een push-abonnement | Het Windows-account waaronder de agent wordt uitgevoerd, wordt gebruikt wanneer deze verbinding maakt met publisher en distributeur. Dit account moet: -Minimaal lid zijn van de db_owner vaste databaserol in de distributiedatabase. -Wees lid van de PAL. -Beschik over een login die is gekoppeld aan een gebruiker met lees-/schrijfrechten in de publicatiedatabase. -Leesrechten op de gedeelde momentopnameschijf hebben. Houd er rekening mee dat het account dat wordt gebruikt om verbinding te maken met de abonnee minimaal lid moet zijn van de db_owner vaste databaserol in de abonnementsdatabase. |
| Agent samenvoegen voor een pull-abonnement | Het Windows-account waaronder de agent wordt uitgevoerd, wordt gebruikt wanneer deze verbinding maakt met de abonnee. Dit account moet minimaal lid zijn van de db_owner vaste databaserol in de abonnementsdatabase. Het account dat wordt gebruikt om verbinding te maken met publisher en distributeur, moet: -Wees lid van de PAL. -Meld u aan bij een gebruiker met lees-/schrijfmachtigingen in de publicatiedatabase. -Meld u aan bij een gebruiker in de distributiedatabase. De gebruiker kan de gastgebruiker zijn. -Leesrechten op de gedeelde momentopnameschijf hebben. |
| Agent voor wachtrijlezer | Het Windows-account waaronder de agent wordt uitgevoerd, wordt gebruikt wanneer deze verbinding maakt met de distributeur. Dit account moet minimaal lid zijn van de db_owner vaste databaserol in de distributiedatabase. Het account dat wordt gebruikt om verbinding te maken met de Publisher, moet minimaal lid zijn van de db_owner standaard databaserol in de publicatiedatabase. Het account dat wordt gebruikt om verbinding te maken met de abonnee, moet minimaal lid zijn van de db_owner vaste databaserol in de abonnementsdatabase. |
Agentbeveiliging onder SQL Server Agent
Wanneer u replicatie configureert met behulp van SQL Server Management Studio, Transact-SQL procedures of RMO, wordt voor elke agent standaard een SQL Server Agent-taak gemaakt. Agents worden vervolgens uitgevoerd in de context van een taakstap, ongeacht of ze continu, volgens een planning of op aanvraag uitgevoerd worden. U kunt deze taken weergeven onder de map Taken in SQL Server Management Studio. De volgende tabel bevat de taaknamen.
| Vertegenwoordiger | Taaknaam |
|---|---|
| Snapshotagent | <Uitgever-PublicatieDatabase-Publicatie-Integer><><><> |
| Momentopnameagent voor een samenvoegingspartitie | <Dyn_Publisher-PublicationDatabase-Publication-GUID><><><> |
| Logboekleesagent | <Publisher-PublicationDatabase-integer><><> |
| Agent samenvoegen voor pull-abonnementen | <Publisher-PublicationDatabase-Publication-Subscriber-SubscriptionDatabase-integer><><><><><> |
| Merge Agent voor pushabonnementen | <Publisher-PublicationDatabase-Publication-Subscriber-integer><><><><> |
| Distributieagent voor pushabonnementen | <Publisher-PublicationDatabase-Publication-Subscriber-integer><><><><> |
| Distributieagent voor pull-abonnementen | <Publisher-PublicationDatabase-Publication-Subscriber-SubscriptionDatabase-GUID><><><><><> |
| Distributieagent voor pushabonnementen naar niet-SQL Server-abonnees | <Publisher-PublicationDatabase-Publication-Subscriber-integer><><><><> |
| Agent voor wachtrijlezer | [<Distributeur>].<geheel getal> |
*Voor pushabonnementen op Oracle-publicaties is <de taaknaam Publisher-Publisher><> in plaats van <Publisher-PublicationDatabase><>.
Voor pullsubscripties voor Oracle-publicaties luidt de taaknaam Publisher-DistributionDatabase in plaats van Publisher-PublicationDatabase.
Wanneer u replicatie configureert, geeft u accounts op waaronder agents moeten worden uitgevoerd. Alle taakstappen worden uitgevoerd onder de beveiligingscontext van een proxy; daarom voert replicatie de volgende koppelingen intern uit voor de agentaccounts die u opgeeft.
Het account wordt eerst toegewezen aan een referentieobject met behulp van de Transact-SQL instructie CREATE CREDENTIAL. SQL Server Agent-proxies gebruiken inloggegevens om informatie over Windows-gebruikersaccounts op te slaan.
De sp_add_proxy opgeslagen procedure wordt aangeroepen en de referentie wordt gebruikt om een proxy te maken.
Opmerking
Deze informatie is gegeven om te helpen begrijpen wat erbij komt kijken bij het uitvoeren van agenten met de juiste beveiligingscontext. U hoeft niet rechtstreeks om te gaan met de inloggegevens of proxy's die zijn gemaakt.
Verwante inhoud
- Best practices voor replicatiebeveiliging
- Beveiligingsinstellingen voor replicatie weergeven en wijzigen
- Een map Momentopname beveiligen