Konfigurieren der Dialogsicherheit für Ereignisbenachrichtigungen
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 einen Anmeldenamen und einen entsprechenden 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, indem Sie den Benutzer der Zieldatenbank sowie WITHOUT LOGIN angeben. Dieser Benutzer ist später der Besitzer des Zieldatenbankzertifikats, das aus der Sicherungsdatei erstellt wird. Eine Zuordnung des Benutzers zu einem Anmeldenamen ist nicht erforderlich, da dieser Benutzer nur das in Schritt 3 erstellte Zieldatenbankzertifikat besitzen soll. | Erstellen Sie einen Benutzer, indem Sie den Benutzer der Quelldatenbank sowie WITHOUT LOGIN angeben. Dieser Benutzer ist später der Besitzer des Quelldatenbankzertifikats, das aus der Sicherungsdatei erstellt wird. Eine Zuordnung des Benutzers zu einem Anmeldenamen ist nicht erforderlich, da dieser Benutzer nur das in Schritt 3 erstellte Quelldatenbankzertifikat besitzen soll. |
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 Berechtigungen CREATE 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 dem Quelldatenbankbenutzer die SEND-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 zu verwendende TCP-Portnummer, FOR SERVICE_BROKER (AUTHENTICATION = CERTIFICATE Name des Zertifikats) und den Namen des Authentifizierungszertifikats an. | Erstellen Sie einen Endpunkt, und geben Sie die zu verwendende TCP-Portnummer, FOR SERVICE_BROKER (AUTHENTICATION = CERTIFICATE Name des Zertifikats) und den Namen des Authentifizierungszertifikats an. |
Erstellen Sie eine Anmeldung, und geben Sie den Anmeldenamen des Zielservers an. | Erstellen Sie eine Anmeldung, und geben Sie den Anmeldenamen 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. |
Weitere Informationen
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)
GRANT (Transact-SQL)
CREATE ROUTE (Transact-SQL)
CREATE QUEUE (Transact-SQL)
CREATE SERVICE (Transact-SQL)
CREATE ENDPOINT (Transact-SQL)
CREATE EVENT NOTIFICATION (Transact-SQL)