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
Azure SQL Managed Instance
Mit Service Broker können Sie hochgradig skalierbare Datenbankanwendungen schreiben, die auch sicher und zuverlässig sind. Die Sicherheit des Dienstbrokers ermöglicht es Diensten, die von verschiedenen SQL Server-Instanzen gehostet werden, sicher zu kommunizieren, auch wenn sich die Instanzen auf unterschiedlichen Computern befinden, die keine andere Vertrauensstellung haben oder wo die Quell- und Zielcomputer nicht gleichzeitig mit demselben Netzwerk verbunden sind.
Die Service Broker-Sicherheit stützt sich auf Zertifikate. Der allgemeine Ansatz besteht darin, Zertifikate zum Einrichten der Anmeldeinformationen einer Remotedatenbank zu verwenden und dann Vorgänge aus der Remotedatenbank einem lokalen Benutzer zuzuordnen. Die Berechtigungen des lokalen Benutzers gelten für beliebige Vorgänge für den Remotedienst. Das Zertifikat wird von den Datenbanken gemeinsam verwendet. Es werden keine weiteren Informationen über den Benutzer geteilt.
Der Service Broker bietet zwei unterschiedliche Sicherheitstypen: Dialogsicherheit und Transportsicherheit. Wenn Sie diese beiden Arten von Sicherheit verstehen und wissen, wie sie zusammenwirken, können Sie Service Broker-Anwendungen entwerfen, bereitstellen und verwalten.
Dialogsicherheit: Verschlüsselt Nachrichten in einem einzelnen Dialog und überprüft die Identitäten der Teilnehmer im Dialog. Die Dialogsicherheit bietet außerdem Remoteautorisierung und Nachrichtenintegritätsüberprüfung. Die Dialogsicherheit stellt authentifizierte und verschlüsselte Kommunikation zwischen zwei Diensten her.
Transportsicherheit: Verhindert, dass nicht autorisierte Datenbanken Service Broker-Nachrichten an Datenbanken in der lokalen Instanz senden. Die Transportsicherheit stellt eine authentifizierte Netzwerkverbindung zwischen zwei Datenbanken her.
Das Dialogfeldprotokoll und das angrenzende Brokerprotokoll sind so konzipiert, dass Nachrichten zwischen Datenbanken übergeben werden, anstatt Befehle in einer Remotedatenbank auszuführen. Durch diese Kommunikationsweise kann der Service Broker Dienste anbieten, ohne dass Datenbanken SQL Server-Anmeldenamen oder Windows-Sicherheitsanmeldeinformationen freigeben müssen.
Weitere Informationen zu Zertifikaten finden Sie unter CREATE CERTIFICATE.
Sicherheitsszenario von Adventure Works Cycles
Hinweis
Die Codebeispiele in diesem Artikel wurden mithilfe der AdventureWorks2025 Beispieldatenbank getestet, die Sie von der Microsoft SQL Server Samples and Community Projects Homepage herunterladen können.
In einem beispielhaften Geschäftsszenario erstellt Adventure Works Cycles, eine fiktive Firma, einen Service Broker-Dienst zum Übermitteln von Bauteilbestellungen an Lieferanten. Dieser Dienst erfordert Sicherheit sowohl für Adventure Works als auch für die Lieferanten. Jeder Lieferant muss gewährleisten können, dass ausschließlich vorhandene Kunden Bestellungen absenden können. Adventure Works muss gewährleisten können, dass nur qualifizierte Lieferanten Bestellungen empfangen können. Nachrichten zwischen der AdventureWorks2008R2-Datenbank und Anbietern müssen verschlüsselt werden, sodass keine Dritten die Nachrichten lesen können. Um die höchste Sicherheit zu gewährleisten, können nur qualifizierte Anbieter eine Verbindung mit der AdventureWorks2008R2-Datenbank herstellen.
Um der Anforderung zu entsprechen, dass Nachrichten verschlüsselt werden müssen, verwenden Adventure Works und die Lieferanten die Service Broker-Dialogsicherheit:
Zum Einrichten der Dialogsicherheit erstellt der oder die AdventureWorks2008R2-Administrator*in einen lokalen Benutzer namens „VendorOutgoing“ und ein Schlüsselpaar für diesen Benutzer.
Der Administrator verteilt das Zertifikat, das den öffentlichen Schlüssel des Schlüsselpaars enthält, an die Lieferanten, die Zugriff auf den Dienst benötigen.
Jeder Lieferant installiert das Zertifikat von Adventure Works Cycles in die Datenbank und erstellt einen Benutzer, der das Zertifikat besitzt.
Der Anbieter erstellt dann ein Schlüsselpaar und sendet Informationen zum Dienstnamen für den Lieferantendienst und ein Zertifikat mit dem öffentlichen Schlüssel dieses Schlüsselpaars an den AdventureWorks2008R2-Administrator.
Der oder die AdventureWorks2008R2-Administrator*in erstellt für jeden Anbieter einen Benutzer und ordnet das Zertifikat des Anbieters diesem Benutzer zu.
Der Administrator erstellt auch eine Remotedienstbindung für jeden Lieferanten, die den Namen des Lieferantendiensts dem für den Lieferanten erstellten Benutzer zuordnet.
Um der Anforderung zu entsprechen, dass nur qualifizierte Anbieter eine Verbindung mit der AdventureWorks2008R2-Datenbank herstellen können, verwendet der oder die AdventureWorks2008R2-Administrator*in die Service Broker-Transportsicherheit:
Zum Einrichten der Transportsicherheit erstellt der AdventureWorks2008R2-Administrator ein Zertifikat in der
masterDatenbank der SQL Server-Instanz, die Nachrichten sendet.Der oder die AdventureWorks2008R2-Administrator*in sendet das Zertifikat an jeden Anbieter.
Jeder Anbieteradministrator erstellt einen Benutzer in der
masterDatenbank, um das Zertifikat zu besitzen, und installiert dann das Zertifikat in der SQL Server-Instanz, die Nachrichten empfängt.Der Anbieteradministrator erstellt als Nächstes ein Zertifikat in der
masterDatenbank der Instanz und sendet den öffentlichen Schlüssel für diesen Benutzer an den AdventureWorks2008R2-Administrator.Schließlich erstellt der AdventureWorks2008R2-Administrator einen Benutzer in der
masterDatenbank, um jedes Öffentliche Schlüsselzertifikat jedes Anbieterzertifikats zu besitzen und jedes Anbieterzertifikat in der Datenbank zu installieren.
Die Kombination von Transport- und Dialogsicherheit ermöglicht es dem oder der AdventureWorks2008R2-Administrator*in, die Sicherheitsanforderungen dieser Anwendung zu erfüllen. In diesem Szenario können sich Anbieter nicht bei der AdventureWorks2008R2-Datenbank anmelden, und der Adventure Works-Administrator kann sich nicht bei den Lieferantendatenbanken anmelden. Nur Service Broker-Nachrichten können zwischen den Datenbanken ausgetauscht werden.