Freigeben über


Sicherheitsmodell des Replikations-Agents

Das Sicherheitsmodell des Replikations-Agents ermöglicht die präzise Steuerung der Konten, unter denen Replikations-Agents ausgeführt werden und Verbindungen herstellen. Für jeden Agent kann ein gesondertes Konto angegeben werden. Weitere Informationen zur Vorgehensweise beim Angeben von Konten finden Sie unter Verwalten von Anmeldenamen und Kennwörtern bei der Replikation.

Wichtig

Wenn ein Mitglied der festen Serverrolle sysadmin die Replikation konfiguriert, kann es die Replikations-Agents so konfigurieren, dass sie die Identität des SQL Server-Agent-Kontos annehmen. Dies geschieht, indem für den Replikations-Agent kein Anmeldename oder Kennwort angegeben wird. Dieser Ansatz ist jedoch nicht empfehlenswert. Sie sollten besser als bewährte Methode in Bezug auf die Sicherheit für jeden Agent ein Konto mit den im Abschnitt zu den für Agents erforderlichen Berechtigungen beschriebenen minimalen Privilegien angeben.

Replikations-Agents werden wie alle ausführbaren Dateien im Kontext eines Windows-Kontos ausgeführt. Die Agents stellen mithilfe dieses Kontos Verbindungen über die integrierte Sicherheit von Windows her. Unter welchem Konto der Agent ausgeführt wird, ist davon abhängig, wie er gestartet wird:

  • Starten des Agents aus einem SQL Server-Agent-Auftrag heraus (Standardeinstellung): Wenn ein SQL Server Agent-Auftrag zum Starten eines Replikations-Agents verwendet wird, wird dieser Agent im Kontext eines Kontos ausgeführt, das Sie während der Replikationskonfiguration angeben. Weitere Informationen zum SQL Server-Agent und der Replikation finden Sie im Abschnitt „Agentensicherheit unter SQL Server-Agent“ weiter unten in diesem Thema. Informationen zu den Berechtigungen, die für das Konto erforderlich sind, unter dem der SQL Server-Agent ausgeführt wird, finden Sie unter Konfigurieren von SQL Server-Agent.

  • Starten des Agents von einer MS-DOS Befehlszeile, entweder direkt oder über ein Skript: Der Agent wird im Kontext des Benutzerkontos ausgeführt, der den Agent in der Befehlszeile ausführt.

  • Starten des Agents aus einer Anwendung, von der Replikationsverwaltungsobjekte (RMO) oder ein ActiveX-Steuerelement verwendet werden: Der Agent wird im Kontext der Anwendung ausgeführt, die RMO bzw. das ActiveX-Steuerelement aufruft.

    Hinweis

    ActiveX-Steuerelemente sind als veraltet markiert.

Es empfiehlt sich, Verbindungen im Kontext der integrierten Sicherheit von Windows herzustellen. Aus Gründen der Abwärtskompatibilität kann auch die SQL Server-Sicherheit verwendet werden. Weitere Informationen zu bewährten Methoden finden Sie unter Replication Security Best Practices.

Für Agents erforderliche Berechtigungen

Die Konten, unter denen Agents ausgeführt werden und über die sie Verbindungen herstellen, erfordern verschiedene Berechtigungen. Eine Beschreibung zu diesen Berechtigungen finden Sie in der folgenden Tabelle. Es empfiehlt sich, jeden Agent unter einem gesonderten Windows-Konto auszuführen. Außerdem sollten den einzelnen Konten lediglich die erforderlichen Berechtigungen erteilt werden. Weitere Informationen zur Veröffentlichungszugriffsliste (Publication Access List oder PAL), die für eine Reihe von Agents relevant ist, finden Sie unter Sichern des Verlegers.

Hinweis

Durch die Benutzerkontensteuerung (User Account Control, UAC) in einigen Windows-Betriebssystemen kann der Administratorzugriff auf die Momentaufnahmefreigabe verhindert werden. Sie müssen daher den vom Momentaufnahme-Agent, Verteilungs-Agent und Merge-Agent verwendeten Windows-Konten explizit Berechtigungen für die Momentaufnahmefreigabe erteilen. Dies ist auch dann erforderlich, wenn die Windows-Konten Mitglieder der Administratorengruppe sind. Weitere Informationen finden Sie unter Schützen des Momentaufnahmeordners.

Agent Berechtigungen
Momentaufnahme-Agent Das Windows-Konto, unter dem der Agent ausgeführt wird, wird verwendet, wenn er Verbindungen mit dem Verteiler herstellt. Für dieses Konto ist Folgendes erforderlich:

– Es muss mindestens Mitglied der festen Datenbankrolle db_owner in der Verteilungsdatenbank sein.

– Es muss über Lese-, Schreib- und Änderungsberechtigungen für die Momentaufnahmefreigabe verfügen.



Das zum Herstellen der Verbindung mit dem Verleger verwendete Konto muss zumindest Mitglied der festen Datenbankrolle db_owner in der Veröffentlichungsdatenbank sein.
Protokolllese-Agent Das Windows-Konto, unter dem der Agent ausgeführt wird, wird verwendet, wenn er Verbindungen mit dem Verteiler herstellt. Dieses Konto muss zumindest Mitglied der festen Datenbankrolle db_owner in der Verteilungsdatenbank sein.

Das zum Herstellen der Verbindung mit dem Verleger verwendete Konto muss zumindest Mitglied der festen Datenbankrolle db_owner in der Veröffentlichungsdatenbank sein.

Wenn Sie die sync_type Optionsreplikationsunterstützung nur auswählen, mit Sicherung initialisieren oder aus lsn initialisieren, muss der Protokollleser-Agent nach der Ausführung sp_addsubscriptionausgeführt werden, sodass die Setupskripts in die Verteilungsdatenbank geschrieben werden. Der Protokolllese-Agent muss unter einem Konto ausgeführt werden, das Mitglied der festen Serverrolle sysadmin ist. Wenn die sync_type Option auf " Automatisch" festgelegt ist, sind keine speziellen Aktionen für den Protokollleser-Agent erforderlich.
Verteilungs-Agent für Pushabonnements Das Windows-Konto, unter dem der Agent ausgeführt wird, wird verwendet, wenn er Verbindungen mit dem Verteiler herstellt. Für dieses Konto ist Folgendes erforderlich:

– Es muss mindestens Mitglied der festen Datenbankrolle db_owner in der Verteilungsdatenbank sein.

– Es muss Mitglied der PAL sein.

– Es muss über Leseberechtigungen für die Momentaufnahmefreigabe verfügen.

– Es muss über die Leseberechtigung für das Installationsverzeichnis des OLE DB-Anbieters für den Abonnenten verfügen, wenn das Abonnement für einen Nicht-SQL Server-Abonnenten vorgesehen ist.

– Bei der Replikation von LOB-Daten muss der Verteilungs-Agent über Schreibberechtigungen auf dem Replikationsordner C:\Programme\Microsoft SQL Server\XX\COMfolder verfügen, wobei „XX“ für die Instanz-ID steht.



Das zum Herstellen der Verbindung mit dem Abonnenten verwendete Konto muss mindestens Mitglied der festen Datenbankrolle db_owner in der Abonnementdatenbank sein oder über vergleichbare Berechtigungen verfügen, wenn das Abonnement nicht SQL Server betrifft.

Hinweis: Wenn Sie den Verteiler-Agent verwenden -subscriptionstreams >= 2 , müssen Sie auch den Abonnenten die View Server State Berechtigung erteilen, Deadlocks zu erkennen.
Verteilungs-Agent für Pullabonnements Das Windows-Konto, unter dem der Agent ausgeführt wird, wird verwendet, wenn er Verbindungen mit dem Abonnenten herstellt. Dieses Konto muss zumindest Mitglied der festen Datenbankrolle db_owner in der Abonnementdatenbank sein. Für das zum Herstellen der Verbindung mit dem Verteiler verwendete Konto ist Folgendes erforderlich:

– Es muss Mitglied der PAL sein.

– Es muss über Leseberechtigungen für die Momentaufnahmefreigabe verfügen.

– Bei der Replikation von LOB-Daten muss der Verteilungs-Agent über Schreibberechtigungen auf dem Replikationsordner C:\Programme\Microsoft SQL Server\XX\COMfolder verfügen, wobei „XX“ für die Instanz-ID steht.



Hinweis: Wenn Sie den Verteiler-Agent verwenden -subscriptionstreams >= 2 , müssen Sie auch den Abonnenten die View Server State Berechtigung erteilen, Deadlocks zu erkennen.
Merge-Agent für Pushabonnements Das Windows-Konto, unter dem der Agent ausgeführt wird, wird verwendet, wenn er Verbindungen mit dem Verleger und dem Verteiler herstellt. Für dieses Konto ist Folgendes erforderlich:

– Es muss mindestens Mitglied der festen Datenbankrolle db_owner in der Verteilungsdatenbank sein.

– Es muss Mitglied der PAL sein.

– Die Anmeldung muss mit einem Benutzer in der Veröffentlichungsdatenbank verknüpft sein.

– Es muss über Leseberechtigungen für die Momentaufnahmefreigabe verfügen.



Das zum Herstellen der Verbindung mit dem Abonnenten verwendete Konto muss zumindest Mitglied der festen Datenbankrolle db_owner in der Abonnementdatenbank sein.
Merge-Agent für Pullabonnements Das Windows-Konto, unter dem der Agent ausgeführt wird, wird verwendet, wenn er Verbindungen mit dem Abonnenten herstellt. Dieses Konto muss zumindest Mitglied der festen Datenbankrolle db_owner in der Abonnementdatenbank sein. Für das zum Herstellen der Verbindung mit dem Verleger und Verteiler verwendete Konto ist Folgendes erforderlich:

– Es muss Mitglied der PAL sein.

– Die Anmeldung muss mit einem Benutzer in der Veröffentlichungsdatenbank verknüpft sein.

– Die Anmeldung muss mit einem Benutzer in der Verteilungsdatenbank verknüpft sein. Der Benutzer kann der Guest-Benutzer sein.

– Es muss über Leseberechtigungen für die Momentaufnahmefreigabe verfügen.
Warteschlangenlese-Agent Das Windows-Konto, unter dem der Agent ausgeführt wird, wird verwendet, wenn er Verbindungen mit dem Verteiler herstellt. Dieses Konto muss zumindest Mitglied der festen Datenbankrolle db_owner in der Verteilungsdatenbank sein.

Das zum Herstellen der Verbindung mit dem Verleger verwendete Konto muss zumindest Mitglied der festen Datenbankrolle db_owner in der Veröffentlichungsdatenbank sein.

Das zum Herstellen der Verbindung mit dem Abonnenten verwendete Konto muss zumindest Mitglied der festen Datenbankrolle db_owner in der Abonnementdatenbank sein.

Agentsicherheit mit SQL Server-Agent

Wenn Sie die Replikation mithilfe von SQL Server Management Studio, Transact-SQL-Prozeduren oder RMO konfigurieren, wird standardmäßig ein SQL Server Agent-Auftrag für jeden Agent erstellt. Die Agents werden dann im Kontext eines Auftragsschritts ausgeführt, unabhängig davon, ob sie kontinuierlich, nach einem Zeitplan oder bei Bedarf ausgeführt werden. Diese Aufträge können im Ordner Aufträge in SQL Server Management Studio angezeigt werden. Die Auftragsnamen sind in der folgenden Tabelle aufgeführt.

Agent Auftragsname
Momentaufnahme-Agent <Publisher>-<PublicationDatabase>-<Publication>-<integer>
Momentaufnahme-Agent für eine Mergeveröffentlichungspartition Dyn_<Publisher>-<PublicationDatabase>-<Publication>-<GUID>
Protokolllese-Agent <Publisher>-<PublicationDatabase>-<integer>
Merge-Agent für Pullabonnements <Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<SubscriptionDatabase>-<integer>
Merge-Agent für Pushabonnements <Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer>
Verteilungs-Agent für Pushabonnements <Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer> 1
Verteilungs-Agent für Pullabonnements <Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<SubscriptionDatabase>-<GUID> 2
Verteilungs-Agent für Pushabonnements für Nicht-SQL Server-Abonnenten <Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer>
Warteschlangenlese-Agent [<Distributor>].<integer>

1 Für Pushabonnements an Oracle-Publikationen ist <der Auftragsname Publisher-Publisher><> anstelle von <Publisher-PublicationDatabase.><>

2 Für Pullabonnements für Oracle-Publikationen lautet <der Auftragsname Publisher-DistributionDatabase>< anstelle von< Publisher-PublicationDatabase.>><>

Wenn Sie die Replikation konfigurieren, geben Sie Konten an, unter denen die Agents ausgeführt werden sollen. Sämtliche Auftragsschritte werden jedoch im Sicherheitskontext eines Proxysausgeführt, somit führt die Replikation folgende Zuordnungen für die von Ihnen angegebenen Agentkonten intern aus:

  • Das Konto wird zunächst mithilfe der Transact-SQL-Anweisung CREATE CREDENTIAL zugeordnet. VonSQL Server -Agent-Proxys werden Anmeldeinformationen zum Speichern von Informationen zu Windows-Benutzerkonten verwendet.

  • Die gespeicherte Prozedur sp_add_proxy wird aufgerufen, und die Anmeldeinformationen werden zum Erstellen eines Proxys verwendet.

Hinweis

Diese Informationen werden bereitgestellt, damit Sie besser verstehen, was für die Ausführung von Agents im angemessenen Sicherheitskontext erforderlich ist. Sie müssen in der Regel nicht direkt mit den Anmeldeinformationen oder Proxys interagieren, die erstellt wurden.

Weitere Informationen

Bewährte Methoden für die Replikationssicherheit
SQL Server-Replikation Sicherheit
Sichern des Momentaufnahmeordners