Identität und Zugriffssteuerung (Service Broker)

Die meisten Service Broker-Anwendungen, an denen mehr als eine Instanz beteiligt ist, werden im Sicherheitskontext eines speziell für die Anwendung erstellten Datenbankprinzipals ausgeführt. Diese Datenbankprinzipale müssen über die Berechtigungen verfügen, die zur Ausführung der von der Anwendung ausgeführten Aufgaben mindestens erforderlich sind.

Die folgenden Überlegungen beziehen sich auf für Service Broker-Anwendungen erstellte Datenbankprinzipale:

  • Die Remoteautorisierung von Service Broker wird angewendet, wenn eine Service Broker-Remoteanwendung eine Verbindung mit SQL Server herstellt und der Instanz eine Nachricht übermittelt. Der für die Remoteautorisierung angegebene Datenbankprinzipal muss über die CONNECT-Berechtigung in der Datenbank verfügen, die als Host für den initiierenden Dienst dient, und er muss über die SEND-Berechtigung für den initiierenden Dienst selbst verfügen. Der Benutzer muss Besitzer des für die Authentifizierung verwendete Zertifikats sein. Es bestehen keine Anforderungen dahingehend, dass der Benutzer Besitzer weiterer Objekte sein, über weitere Berechtigungen verfügen oder in der Lage sein muss, sich mit irgendeinem anderen Mechanismus anzumelden.

  • Damit ein Datenbankprinzipal eine Konversation beginnen kann, muss er über RECEIVE-Berechtigungen für die Warteschlange des initiierenden Diensts verfügen.

  • Der Datenbankprinzipal, der Besitzer des initiierenden Diensts ist, muss über SEND-Berechtigungen für den Zieldienst verfügen.

  • Damit ein Datenbankprinzipal Nachrichten an einen Dienst senden kann, muss er über SEND-Berechtigungen für den Dienst verfügen. Für in einer anderen Instanz gehostete Dienste ermittelt die Service Broker-Dialogsicherheit den Datenbankprinzipal in der Remoteinstanz. Weitere Informationen finden Sie unter Service Broker-Dialogsicherheit. Beachten Sie, dass Service Broker die Mitgliedschaft in Windows-Rollen bei der Überprüfung von SEND-Berechtigungen nicht berücksichtigt.

  • Der als Benutzer für eine gespeicherte Aktivierungsprozedur angegebene Benutzer muss zum Ausführen der Prozedur berechtigt sein. Häufig verfügt der angegebene Benutzer über die erforderlichen Berechtigungen zum Ausführen der Anweisungen in der Prozedur. Ist jedoch die gespeicherte Prozedur selbst mit einer EXECUTE AS-Klausel definiert, werden die Anweisungen in der gespeicherten Prozedur mit dem durch die gespeicherte Prozedur definierten Sicherheitskontext ausgeführt. SQL Server legt zuerst den Sicherheitskontext auf den für die Warteschlange angegebenen Benutzer fest. Anschließend führt SQL Server die gespeicherte Prozedur aus, und die gespeicherte Prozedur ändert den Sicherheitskontext in den für die Prozedur angegebenen Benutzer.

  • Wenn die Service Broker-Transportsicherheit SSPI verwendet, muss das Dienstkonto für die Remotedatenbank über die CONNECT-Berechtigung in master verfügen und auch einer Anmeldung entsprechen. Daher muss das Konto, unter dem die SQL Server-Remoteinstanz ausgeführt wird, zur Anmeldung bei SQL Server mithilfe der Windows-Authentifizierung berechtigt sein. Es bestehen keine Anforderungen an die Anmeldung hinsichtlich weiterer Berechtigungen oder des Besitzes von Objekten in einer Datenbank.