Dela via


Säkerhetsmodell för replikeringsagent

Gäller för:SQL Server

Säkerhetsmodellen för replikeringsagenten möjliggör detaljerad kontroll över de konton under vilka replikeringsagenter körs och upprättar anslutningar: Ett annat konto kan anges för varje agent. Mer information om hur du anger konton finns i Identitets- och åtkomstkontroll för replikering.

Säkerhetsmodellen för replikeringsagenten är lite annorlunda för Azure SQL Managed Instance, eftersom det inte finns några Windows-konton som agenterna ska köras under. I stället måste allt göras via SQL Server-autentisering.

Viktigt!

När en medlem i den fasta sysadmin-serverrollen konfigurerar replikering kan replikeringsagenter konfigureras för att personifiera SQL Server Agent-kontot. Detta görs genom att inte ange en inloggning och ett lösenord för en replikeringsagent. Vi rekommenderar dock inte den här metoden. I stället rekommenderar vi att du anger ett konto för varje agent som har de minsta behörigheter som beskrivs i avsnittet "Behörigheter som krävs av agenter" senare i det här avsnittet.

Replikeringsagenter, precis som alla körbara filer, körs i kontexten för ett Windows-konto. Agenterna gör Windows-integrerade säkerhetsanslutningar med hjälp av det här kontot. Vilket konto agenten körs under beror på hur agenten startas.

  • Starta agenten från ett SQL Server Agent-jobb som standard: När ett SQL Server Agent-jobb används för att starta en replikeringsagent körs agenten i kontexten för ett konto som du anger när du konfigurerar replikering. Mer information om SQL Server-agent och replikering finns i avsnittet "Agentsäkerhet under SQL Server Agent" senare i det här avsnittet. Information om de behörigheter som krävs för det konto som SQL Server-agenten körs under finns i Konfigurera SQL Server Agent.

  • Starta agenten från en MS-DOS kommandorad, antingen direkt eller via ett skript: Agenten körs i kontexten för kontot för den användare som kör agenten på kommandoraden.

  • Starta agenten från ett program som använder RMO (Replication Management Objects) eller en ActiveX-kontroll: Agenten körs i kontexten för det program som anropar RMO eller ActiveX-kontrollen.

    Anmärkning

    ActiveX-kontroller är inaktuella.

Vi rekommenderar att anslutningar görs inom ramen för Windows Integrated Security. För bakåtkompatibilitet kan SQL Server Security också användas. Mer information om metodtips finns i Metodtips för replikeringssäkerhet.

Behörigheter som krävs av agenter

Kontona under vilka agenter kör och upprättar anslutningar kräver en mängd olika behörigheter. Dessa behörigheter beskrivs i följande tabell. Vi rekommenderar att varje agent körs under ett annat Windows-konto och att kontot endast beviljas de behörigheter som krävs. Information om publiceringsåtkomstlistan (PAL), som är relevant för ett antal agenter, finns i Skydda utgivaren.

Anmärkning

Användarkontokontroll (UAC) i vissa Windows-operativsystem kan förhindra administrativ åtkomst till ögonblicksbildresursen. Du måste därför uttryckligen bevilja behörigheter för ögonblicksbildsdelning till de Windows-konton som används av Snapshot Agent, Distribution Agent och Merge Agent. Du måste göra detta även om Windows-kontona är medlemmar i gruppen Administratörer. Mer information finns i Skydda mappen Ögonblicksbild.

Handläggare Permissions
Ögonblicksagent Det Windows-konto under vilket agenten körs används när den upprättar anslutningar till distributören. Det här kontot måste:

– Minst vara medlem i db_owner fast databasroll i distributionsdatabasen.

-Ha läs-, skriv- och ändringsbehörigheter för snapshot-delningsresursen.



Observera att kontot som används för att ansluta till utgivaren måste minst vara medlem i den fasta databasrollen db_owner i publikationsdatabasen.
Agent för loggläsning Det Windows-konto under vilket agenten körs används när den upprättar anslutningar till distributören. Det här kontot måste vara medlem åtminstone i db_owner fasta databasrollen i distributionsdatabasen.

Kontot som används för att ansluta till utgivaren måste minst vara medlem i db_owner fast databasroll i publikationsdatabasen.

När du väljer sync_type alternativen replikeringsstöd endast, initiera med säkerhetskopiering, eller initiera från lsn, måste loggläsaragenten köras efter att sp_addsubscription har körts, så att konfigurationsskripten skrivs till distributionsdatabasen. Loggläsaragenten måste köras under ett konto som är medlem i den fasta sysadmin-serverrollen . När alternativet sync_type är inställt på Automatisk krävs inga särskilda agentåtgärder för loggläsare.
Distributionsagent för en push-prenumeration Det Windows-konto under vilket agenten körs används när den upprättar anslutningar till distributören. Det här kontot måste:

– Minst vara medlem i db_owner fast databasroll i distributionsdatabasen.

-Bli medlem i PAL.

-Har läsbehörighet för ögonblicksbildandel.

-Ha läsbehörighet för installationskatalogen för OLE DB-providern för prenumeranten om prenumerationen är för en icke-SQL Server-prenumerant.

-När du replikerar LOB-data måste distributionsagenten ha skrivbehörighet för replikeringsmappen C:\Program Files\Microsoft SQL Server\XX\COM där XX representerar instanceID.



Observera att kontot som används för att ansluta till prenumeranten minst måste vara medlem i den db_owner fasta databasrollen i prenumerationsdatabasen eller ha motsvarande behörigheter om prenumerationen är för en icke-SQL Server-prenumerant.

Observera också att när du använder -subscriptionstreams >= 2 på distributionsagenten måste du också ge behörigheten Visa servertillstånd för prenumeranterna att identifiera dödlägen.
Distributionsagent för en pull-prenumeration Det Windows-konto under vilket agenten körs används när det upprättar anslutningar till prenumeranten. Det här kontot måste:

-Minimumkravet är att vara medlem i den fasta databaserollen db_owner i prenumerationsdatabasen.

Kontot som används för att ansluta till distributören måste:

– Minst vara medlem i db_owner fast databasroll i distributionsdatabasen.

-Bli medlem i PAL.

-Har läsbehörighet för ögonblicksbildandel.

-När du replikerar LOB-data måste distributionsagenten ha skrivbehörighet för replikeringsmappen C:\Program Files\Microsoft SQL Server\XX\COM där XX representerar instanceID.



Observera att när du använder -subscriptionstreams >= 2 på distributionsagenten måste du också ge prenumeranterna behörigheten Visa servertillstånd för att upptäcka dödlägen.
Merge-agent för en push-prenumeration Det Windows-konto under vilket agenten körs används när det upprättar anslutningar till utgivaren och distributören. Det här kontot måste:

– Minst vara medlem i db_owner fast databasroll i distributionsdatabasen.

-Bli medlem i PAL.

-Vara en inloggning som är associerad med en användare med läs-/skrivbehörigheter i publikationsdatabasen.

-Har läsbehörighet för ögonblicksbildandel.



Observera att kontot som används för att ansluta till prenumeranten minst måste vara medlem i den db_owner fasta databasrollen i prenumerationsdatabasen.
Sammanfogningsagent för en pull-prenumeration Det Windows-konto under vilket agenten körs används när det upprättar anslutningar till prenumeranten. Det här kontot måste vara medlem i en fast databasroll, minst db_owner, inom prenumerationsdatabasen. Kontot som används för att ansluta till utgivaren och distributören måste:

-Bli medlem i PAL.

-Vara en inloggning som är associerad med en användare med läs-/skrivbehörigheter i publikationsdatabasen.

-Vara en inloggning som är associerad med en användare i distributionsdatabasen. Användaren kan vara gästanvändare .

-Har läsbehörighet för ögonblicksbildandel.
Agent för köhantering Det Windows-konto under vilket agenten körs används när den upprättar anslutningar till distributören. Det här kontot måste vara medlem åtminstone i db_owner fasta databasrollen i distributionsdatabasen.

Kontot som används för att ansluta till utgivaren måste minst vara medlem i db_owner fast databasroll i publikationsdatabasen.

Kontot som används för att ansluta till prenumeranten måste åtminstone vara medlem i db_owner fasta databasrollen i prenumerationsdatabasen.

Agentsäkerhet under SQL Server-agent

När du konfigurerar replikering med SQL Server Management Studio, Transact-SQL procedurer eller RMO skapas ett SQL Server Agent-jobb som standard för varje agent. Agenter körs sedan i kontexten för ett jobbsteg, oavsett om de körs kontinuerligt, enligt ett schema eller på begäran. Du kan visa de här jobben under mappen Jobb i SQL Server Management Studio. I följande tabell visas jobbnamnen.

Handläggare Jobbnamn
Ögonblicksagent <Utgivare-Publikationsdatabas-Publikation-heltal><><><>
Ögonblicksbildsagent för en sammanslagningspublikationspartition Dyn_<Publisher>-<PublicationDatabase>-<Publication>-<GUID>
Agent för loggläsning <Utgivare>-<PublikationsDatabas>-<heltal>
Sammanslagningsagent för pull-prenumerationer <Publisher-PublicationDatabase-Publication-Subscriber-SubscriptionDatabase-heltal><><><><><>
Sammanslagningsagent för push-prenumerationer <Publisher-PublicationDatabase-Publication-Subscriber-heltal><><><><>
Distributionsagent för push-prenumerationer <Publisher-PublicationDatabase-Publication-Subscriber-integer><><><><>
Distributionsagent för pull-prenumerationer <Publisher-PublicationDatabase-Publication-Subscriber-SubscriptionDatabase-GUID><><><><><>
Distributionsagent för push-prenumerationer till icke-SQL Server-prenumeranter <Publisher-PublicationDatabase-Publication-Subscriber-heltal><><><><>
Agent för köhantering [<Distributör>].<integer>

För pushprenumerationer till Oraclepublikationer är jobbnamnet <Publisher>-<Publisher> istället för <Publisher>-<PublicationDatabase>.

För pull-abonnemang till Oracle-publikationer är jobbnamnet <Publisher>-<DistributionDatabase> i stället för <Publisher>-<PublicationDatabase>.

När du konfigurerar replikering anger du konton under vilka agenter ska köras. Alla jobbsteg körs dock under säkerhetskontexten för en proxy. Replikeringen utför därför följande mappningar internt för de agentkonton som du anger:

  • Kontot mappas först till en autentiseringsuppgift med hjälp av instruktionen Transact-SQL CREATE CREDENTIAL . SQL Server Agent-proxyservrar använder autentiseringsuppgifter för att lagra information om Windows-användarkonton.

  • Den sp_add_proxy lagrade proceduren anropas och autentiseringsuppgifterna används för att skapa en proxy..

Anmärkning

Den här informationen tillhandahålls för att hjälpa dig att förstå vad som ingår i att köra agenter med lämplig säkerhetskontext. Du bör inte behöva interagera direkt med de autentiseringsuppgifter eller proxyservrar som har skapats.