Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Service Broker -Dialogsicherheit sollte für Ereignisbenachrichtigungen konfiguriert werden, die Meldungen an einen Service Broker auf einem Remoteserver senden. Die Dialogsicherheit muss entsprechend dem Modell für die vollständige Sicherheit von Service Broker-Dialogen manuell konfiguriert werden. Das Modell für vollständige Sicherheit ermöglicht die Ver- und Entschlüsselung von Nachrichten, die an und von Remoteservern gesendet werden. Obwohl Ereignisbenachrichtigungen nur in eine Richtung gesendet werden, werden andere Nachrichten, z. B. Fehlermeldungen, auch in die Gegenrichtung zurückgegeben.
Konfigurieren der Dialogsicherheit für Ereignisbenachrichtigungen
Der zum Implementieren der Dialogsicherheit für die Ereignisbenachrichtigung erforderliche Vorgang wird in den folgenden Schritten beschrieben. Diese Schritte schließen Aktionen ein, die sowohl auf dem Quellserver als auch auf dem Zielserver ausgeführt werden müssen. Der Quellserver ist der Server, auf dem die Ereignisbenachrichtigung erstellt wird. Der Zielserver ist der Server, der die Ereignisbenachrichtigungsmitteilung empfängt. Sie müssen die Aktionen in den einzelnen Schritten sowohl für den Quellserver als auch für den Zielserver abschließen, bevor Sie den Vorgang mit dem nächsten Schritt fortsetzen.
Wichtig
Alle Zertifikate müssen mit einem gültigen Start- und Ablaufdatum erstellt werden.
Schritt 1: Richten Sie eine TCP-Portnummer und einen Zieldienstnamen ein.
Richten Sie den TCP-Port ein, auf dem sowohl der Quellserver als auch der Zielserver Nachrichten empfangen. Sie müssen auch den Namen des Zielservers bestimmen.
Schritt 2: Konfigurieren Sie die Verschlüsselung und die Freigabe von Zertifikaten für die Authentifizierung auf Datenbankebene.
Führen Sie die folgenden Aktionen sowohl auf dem Quell- als auch auf dem Zielserver aus.
| Quellserver | Zielserver |
|---|---|
| Wählen Sie die Datenbank aus bzw. erstellen Sie eine Datenbank, in der die Ereignisbenachrichtigung und der Hauptschlüssel gespeichert werden sollen. | Wählen Sie die Datenbank aus bzw. erstellen Sie eine Datenbank, in der der Hauptschlüssel gespeichert werden soll. |
| Wenn für die Quelldatenbank kein Hauptschlüssel vorhanden ist, müssen Sie einen Hauptschlüssel erstellen. Ein Hauptschlüssel muss sowohl in der Quelldatenbank als auch in der Zieldatenbank vorhanden sein, um das jeweilige Zertifikat zu sichern. | Wenn für die Zieldatenbank kein Hauptschlüssel vorhanden ist, müssen Sie einen Hauptschlüssel erstellen. |
| Erstellen Sie eine Anmeldung und einen zugehörigen Benutzer für die Quelldatenbank. | Erstellen Sie einen Anmeldenamen und einen entsprechenden Benutzer für die Zieldatenbank. |
| Erstellen Sie ein Zertifikat , dessen Besitzer der Benutzer der Quelldatenbank ist. | Erstellen Sie ein Zertifikat, dessen Besitzer der Benutzer der Zieldatenbank ist. |
| Sichern Sie das Zertifikat in einer Datei, auf die der Zielserver zugreifen kann. | Sichern Sie das Zertifikat in einer Datei, auf die der Quellserver zugreifen kann. |
| Erstellen Sie einen Benutzer, geben Sie den Benutzer der Zieldatenbank an und ohne LOGIN. Dieser Benutzer ist später der Besitzer des Zieldatenbankzertifikats, das aus der Sicherungsdatei erstellt wird. Der Benutzer muss keinem Login zugeordnet werden, da sein einziger Zweck darin besteht, Eigentümer des Zertifikats der Zieldatenbank zu sein, das im folgenden Schritt 3 erstellt wird. | Erstellen Sie einen Benutzer, wobei Sie den Benutzer der Quelldatenbank angeben, und zwar ohne LOGIN. Dieser Benutzer ist später der Besitzer des Quelldatenbankzertifikats, das aus der Sicherungsdatei erstellt wird. Der Benutzer muss keinem Login zugeordnet werden, da der einzige Zweck dieses Benutzers darin besteht, das im folgenden Schritt 3 erstellte Zertifikat der Quelldatenbank zu besitzen. |
Schritt 3: Geben Sie die Zertifikate frei, und erteilen Sie Berechtigungen für die Authentifizierung auf Datenbankebene.
Führen Sie die folgenden Aktionen sowohl auf dem Quell- als auch auf dem Zielserver aus.
| Quellserver | Zielserver |
|---|---|
| Erstellen Sie ein Zertifikat aus der Sicherungsdatei des Zielzertifikats, und geben Sie dabei den Benutzer der Zieldatenbank als Besitzer an. | Erstellen Sie ein Zertifikat aus der Sicherungsdatei des Quellzertifikats, und geben Sie dabei den Benutzer der Quelldatenbank als Besitzer an. |
| Erteilen Sie dem Benutzer der Quelldatenbank die Berechtigung zum Erstellen der Ereignisbenachrichtigung. Weitere Informationen zu dieser Berechtigung finden Sie unter CREATE EVENT NOTIFICATION (Transact-SQL). | Erteilen Sie dem Benutzer der Zieldatenbank die REFERENCES-Berechtigung für den mit dem Service Broker bestehenden Ereignisbenachrichtigungsvertrag: https://schemas.microsoft.com/SQL/Notifications/PostEventNotification. |
| Erstellen Sie eine Remotedienstbindung zum Zieldienst, und geben Sie die Anmeldeinformationen des Zieldatenbankbenutzers an. Durch die Remotedienstbindung ist sichergestellt, dass die an den Zielserver gesendeten Nachrichten mit dem öffentlichen Schlüssel des Zertifikats, dessen Besitzer der Quelldatenbankbenutzer ist, authentifiziert werden. | Erteilen Sie dem Zieldatenbankbenutzer die BerechtigungenCREATE QUEUE, CREATE SERVICE und CREATE SCHEMA. |
| Wenn Sie als Zieldatenbankbenutzer noch keine Verbindung mit der Datenbank hergestellt haben, stellen Sie nun die Verbindung her. | |
| Erstellen Sie eine Warteschlange für den Empfang der Ereignisbenachrichtigungen, und erstellen Sie einen Dienst für die Übermittlung der Nachrichten. | |
| Erteilen Sie SEND dem Quelldatenbankbenutzer die Berechtigung für den Zieldienst. | |
| Stellen Sie dem Zielserver den Service Broker-Bezeichner der Quelldatenbank zur Verfügung. Dieser Bezeichner kann durch Abfragen der service_broker_guid -Spalte der sys.databases -Katalogsicht abgerufen werden. Verwenden Sie für eine Ereignisbenachrichtigung auf Serverebene den Service Broker-Bezeichner von msdb. | Stellen Sie dem Quellserver den Service Broker-Bezeichner der Zieldatenbank zur Verfügung. |
Schritt 4: Erstellen Sie Routen, und richten Sie die Authentifizierung auf Serverebene ein.
Führen Sie die folgenden Aktionen sowohl auf dem Quell- als auch auf dem Zielserver aus.
| Quellserver | Zielserver |
|---|---|
| Erstellen Sie eine Route zum Zieldienst, und geben Sie den Service Broker-Bezeichner der Zieldatenbank und die zu verwendende TCP-Portnummer an. | Erstellen Sie eine Route zum Quelldienst, und geben Sie den Service Broker-Bezeichner der Quelldatenbank und die zu verwendende TCP-Portnummer an. Geben Sie den Quelldienst mithilfe des folgenden bereitgestellten Dienstes an: https://schemas.microsoft.com/SQL/Notifications/EventNotificationService. |
| Wechseln Sie zur master -Datenbank, um die Authentifizierung auf Serverebene zu konfigurieren. | Wechseln Sie zur master -Datenbank, um die Authentifizierung auf Serverebene zu konfigurieren. |
| Wenn für die master -Datenbank kein Hauptschlüssel vorhanden ist, müssen Sie einen Hauptschlüssel erstellen. | Wenn für die master -Datenbank kein Hauptschlüssel vorhanden ist, müssen Sie einen Hauptschlüssel erstellen. |
| Erstellen Sie ein Zertifikat , mit dem die Datenbank authentifiziert wird. | Erstellen Sie ein Zertifikat , mit dem die Datenbank authentifiziert wird. |
| Sichern Sie das Zertifikat in einer Datei, auf die der Zielserver zugreifen kann. | Sichern Sie das Zertifikat in einer Datei, auf die der Quellserver zugreifen kann. |
| Erstellen Sie einen Endpunkt, und geben Sie die vereinbarte TCP-Portnummer FOR SERVICE_BROKER (AUTHENTICATION = CERTIFICATEcertificate_name) und den Namen des Authentifizierungszertifikats an. | Erstellen Sie einen Endpunkt, und geben Sie die vereinbarte TCP-Portnummer FOR SERVICE_BROKER (AUTHENTICATION = CERTIFICATEcertificate_name) und den Namen des Authentifizierungszertifikats an. |
| Erstellen Sie eine Anmeldung, und geben Sie den Anmeldenamen des Zielservers an. | Erstellen Sie ein Login und geben Sie das Login des Quellservers an. |
| Erteilen Sie dem Zielauthentifikator-Anmeldenamen die CONNECT-Berechtigung für den Endpunkt. | Erteilen Sie dem Quellauthentifikator-Anmeldenamen die CONNECT-Berechtigung für den Endpunkt. |
| Erstellen Sie einen Benutzer, und geben Sie den Zielauthentifikator-Anmeldenamen an. | Erstellen Sie einen Benutzer, und geben Sie den Quellauthentifikator-Anmeldenamen an. |
Schritt 5: Geben Sie die Zertifikate für die Authentifizierung auf Serverebene frei, und erstellen Sie die Ereignisbenachrichtigung.
Führen Sie die folgenden Aktionen sowohl auf dem Quell- als auch auf dem Zielserver aus.
| Quellserver | Zielserver |
|---|---|
| Erstellen Sie ein Zertifikat aus der Sicherungsdatei des Zielzertifikats, und geben Sie dabei den Zielauthentifikatorbenutzer als Besitzer an. | Erstellen Sie ein Zertifikat aus der Sicherungsdatei des Quellzertifikats, und geben Sie dabei den Quellauthentifikatorbenutzer als Besitzer an. |
| Wechseln Sie zu der Quelldatenbank, auf der die Ereignisbenachrichtigung erstellt werden soll. Wenn Sie als Quelldatenbankbenutzer noch keine Verbindung mit der Datenbank hergestellt haben, stellen Sie nun die Verbindung her. | Wechseln Sie zur Zieldatenbank, um Ereignisbenachrichtigungen zu empfangen. |
| Erstellen Sie die Ereignisbenachrichtigung, und geben Sie den Broker-Dienst und den Bezeichner der Zieldatenbank an. |
Verwandte Inhalte
- GRANT (Transact-SQL)
- BACKUP CERTIFICATE (Transact-SQL)
- sys.databases (Transact-SQL)
- Verschlüsselungshierarchie
- Implementieren von Ereignisbenachrichtigungen
- CREATE MASTER KEY (Transact-SQL)
- CREATE LOGIN (Transact-SQL)
- CREATE USER (Transact-SQL)
- CREATE CERTIFICATE (Transact-SQL)
- CREATE REMOTE SERVICE BINDING (Transact-SQL)
- CREATE ROUTE (Transact-SQL)
- CREATE QUEUE (Transact-SQL)
- CREATE SERVICE (Transact-SQL)
- CREATE ENDPOINT (Transact-SQL)
- CREATE EVENT NOTIFICATION (Transact-SQL)