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
In diesem Artikel wird beschrieben, wie SQL Server Zertifikate für die Remotesicherheit von Service Broker verwendet. Die Remote-Sicherheit von Service Broker bezieht sich auf Operationen, die mehr als eine SQL Server-Instanz betreffen, wenn diese Operationen entweder Dialogsicherheit oder Transportsicherheit verwenden.
Übersicht
Die Remote-Sicherheit von Service Broker ordnet eine Operation von außerhalb einer Instanz einem SQL Server-Datenbankprinzipal zu. Die Operation wird dann im Sicherheitskontext dieses Datenbank-Principals mit den normalen SQL Server-Berechtigungsprüfungen durchgeführt. Wenn beispielsweise eine Nachricht für eine Konversation eintrifft, die Dialogsicherheit verwendet, verwendet Service Broker die Informationen in der Nachricht, um einen Datenbankprinzipal für die entfernte Seite der Konversation zu identifizieren. SQL Server überprüft dann, ob der Principal die Berechtigung hat, sich mit der Datenbank zu verbinden, die den Zieldienst hostet, und die Berechtigung, eine Nachricht an den Zieldienst zu senden.
SQL Server verwendet Zertifikate, um die Identität einer Remotedatenbank zu überprüfen und den lokalen Datenbankprinzipal für den Vorgang zu identifizieren. Daher stellt die Installation eines Zertifikats in SQL Server eine Vertrauenserklärung gegenüber der Datenbank dar, die den privaten Schlüssel für das Zertifikat enthält. Aus diesem Grund sollten Sie die installierten Zertifikate und die erstellten Remotedienstbindungen sorgfältig verwalten.
Hinweis
Installieren Sie nur Zertifikate von vertrauenswürdigen Quellen. Verteilen Sie keine privaten Schlüssel.
Um die Identität eines Remoteservers zu überprüfen, muss SQL Server Informationen erhalten, die mit dem öffentlichen Schlüssel in einem Zertifikat entschlüsselt werden können, das einem lokalen Datenbankprinzipal gehört. Wenn SQL Server die Informationen erfolgreich entschlüsseln kann, bedeutet dies, dass die Remote-Datenbank den privaten Schlüssel enthält, der dem öffentlichen Schlüssel im lokalen Zertifikat entspricht. Nachdem SQL Server die Identität einer Remotedatenbank überprüft hat, kann die Remotedatenbank mit den Berechtigungen des lokalen Datenbankprinzipals handeln.
Hinsichtlich der Transportsicherheit muss jede Datenbank der anderen Datenbank vertrauen. Für die Transportsicherheit können entweder Zertifikate oder die Windows-Authentifizierung verwendet werden. Weitere Informationen zur Transportsicherheit finden Sie unter Service Broker Transport Security.
Hinsichtlich der Dialogsicherheit muss der Initiator des Dialogs dem Ziel vertrauen, und er muss in der Lage sein, die Identität des Ziels zu überprüfen. Das Ziel kann jedoch Verbindungen von Initiatoren zulassen, die keine identifizierenden Informationen bereitstellen. In diesem Fall verwenden die Initiatoren die Rolle public in der Datenbank, die als Host für den Zieldienst dient. Bei der Dialogsicherheit werden immer Zertifikate verwendet. Weitere Informationen zur Dialogsicherheit finden Sie unter Service Broker Dialogsicherheit.
SQL Server stellt keine automatisierten Methoden für die Konfiguration der Dienstbrokersicherheit mithilfe von Zertifikaten bereit.
Zertifikatanforderungen
Ein Zertifikat muss die folgenden Anforderungen erfüllen, die für die Sicherheit des Service Brokers verwendet werden müssen:
- Der Schlüsselmodulus muss kleiner als 2048 sein.
- Die Zertifikatgröße muss kleiner als 32 KB sein.
- Ein Antragstellername muss angegeben werden.
- Gültigkeitsdaten müssen angegeben werden.
- Bei der Schlüssellänge muss es sich um ein Vielfaches von 64 Bit handeln.
Ein selbstsigniertes Zertifikat, das mit der Transact-SQL-Anweisung CREATE CERTIFICATE erstellt wurde, erfüllt die Anforderungen in der vorherigen Liste. Zertifikate, die aus einer Datei geladen werden, erfüllen diese Anforderungen möglicherweise nicht.
Wenn das Zertifikat in SQL Server gespeichert wird, muss das Zertifikat mit dem Hauptschlüssel für die Datenbank verschlüsselt werden. Der Dienstbroker kann keine Zertifikate verwenden, die nur mit einem Kennwort verschlüsselt sind. Darüber hinaus muss der Hauptschlüssel für die Datenbank mit dem Dienstschlüssel für die Instanz verschlüsselt werden. Andernfalls kann der Dienstbroker den Hauptschlüssel nicht öffnen.
Damit SQL Server ein Zertifikat zum Starten einer Unterhaltung verwendet, muss das Zertifikat markiert ACTIVE FOR BEGIN_DIALOGsein. Zertifikate sind standardmäßig entsprechend gekennzeichnet. Allerdings können Sie ein Zertifikat temporär deaktivieren, während Sie die Sicherheitskonfiguration für einen Dienst aktualisieren. Weitere Informationen finden Sie unter CREATE CERTIFICATE and ALTER CERTIFICATE.