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
Erstellt eine Bindung, mit der die Sicherheitsanmeldeinformationen definiert werden, mit denen eine Konversation mit einem Remotedienst initiiert werden soll.
Transact-SQL-Syntaxkonventionen
Syntax
CREATE REMOTE SERVICE BINDING binding_name
[ AUTHORIZATION owner_name ]
TO SERVICE 'service_name'
WITH USER = user_name [ , ANONYMOUS = { ON | OFF } ]
[ ; ]
Argumente
binding_name
Der Name der zu erstellenden Remotedienstbindung. Server-, Datenbank- und Schemaname können nicht angegeben werden.
binding_name muss einen gültigen sysname-Wert besitzen.
AUTHORIZATION
owner_name
Legt den Besitzer der Bindung auf den angegebenen Datenbankbenutzer oder die angegebene Datenbankrolle fest. Ist der aktuelle Benutzer dbo oder sa, kann owner_name der Name eines beliebigen gültigen Benutzers bzw. einer beliebigen gültigen Rolle sein. Andernfalls muss owner_name der Name des aktuellen Benutzers, der Name eines Benutzers, für den der aktuelle Benutzer IMPERSONATE-Berechtigungen besitzt, oder der Name einer Rolle sein, der der aktuelle Benutzer angehört.
UM SERVICE 'service_name'
Spezifiziert, dass der entfernte Dienst an den in der WITH-Klausel USER identifizierten Benutzer gebunden werden soll.
USER = user_name
Spezifiziert den Datenbankprinzipal, der das Zertifikat besitzt, das mit dem entfernten Dienst verbunden ist, der durch die TO-Klausel SERVICE identifiziert wurde. Dieses Zertifikat wird für die Verschlüsselung und Authentifizierung von Nachrichten verwendet, die mit dem Remotedienst ausgetauscht werden.
ANONYMOUS
Gibt an, ob die anonyme Authentifizierung bei der Kommunikation mit dem Remotedienst verwendet wird. Wenn ANONYMOUS = ON angegeben ist, wird die anonyme Authentifizierung verwendet, und Vorgänge in der Remotedatenbank erscheinen als Mitglieder der festen Datenbankrolle public. Wenn ANONYMOUS = OFF angegeben ist, finden Vorgänge in der Remotedatenbank als bestimmte Benutzer dieser Datenbank statt. Wird diese Klausel nicht angegeben, ist die Standardeinstellung OFF.
Bemerkungen
Service Broker verwendet eine Remotedienstbindung, um nach dem für eine neue Konversation zu verwendenden Zertifikat zu suchen. Der öffentliche Schlüssel des Zertifikats, das user_namezugeordnet ist, wird zur Authentifizierung von Nachrichten an den Remotedienst und zur Verschlüsselung eines Sitzungsschlüssels verwendet, der dann zur Verschlüsselung der Konversation verwendet wird. Das Zertifikat für user_name muss dem Zertifikat für einen Benutzer in der Datenbank entsprechen, die als Host für den Remotedienst dient.
Eine Remotedienstbindung wird nur zum Initiieren von Diensten benötigt, die mit Zieldiensten außerhalb der SQL Server-Instanz kommunizieren. Eine Datenbank, die als Host für einen initiierenden Dienst dient, muss Remotedienstbindungen für alle Zieldienste außerhalb der SQL Server-Instanz enthalten. Eine Datenbank, die als Host für einen Zieldienst dient, muss keine Remotedienstbindungen für die initiierenden Dienste enthalten, die mit dem Zieldienst kommunizieren. Wenn sich der Initiator- und der Zieldienst in der gleichen Instanz von SQL Server befinden, ist keine Dienstbindung erforderlich. Wenn jedoch eine Ferndienstbindung vorhanden ist, bei der die für TO SERVICE angegebene service_name mit dem Namen des lokalen Dienstes übereinstimmt, verwendet Service Broker die Bindung.
Wenn ANONYMOUS = ON festgelegt wurde, stellt der initiierende Dienst eine Verbindung mit dem Zieldienst als Mitglied der festen Datenbankrolle public her. Standardmäßig haben Mitglieder dieser Rolle keine Berechtigung, eine Verbindung mit einer Datenbank herzustellen. Um eine Nachricht erfolgreich zu senden, muss die Zieldatenbank der öffentlichen Rolle die Berechtigung CONNECT für die Datenbank und SEND die Berechtigung für den Zieldienst erteilen.
Besitzt ein Benutzer mehrere Zertifikate, wählt Service Broker das Zertifikat mit dem aktuellsten Ablaufzeitpunkt aus den derzeit gültigen und als AVAILABLE FOR BEGIN_DIALOG gekennzeichneten Zertifikaten aus.
Berechtigungen
Berechtigungen zur Erstellung eines entfernten Dienstes binden standardmäßig an den in der Klausel USER genannten Benutzer, Mitglieder der db_owner festen Datenbankrolle, Mitglieder der db_ddladmin festen Datenbankrolle und Mitglieder der Systemadministrator-festen Serverrolle.
Der Nutzer, der die CREATE REMOTE SERVICE BINDING Aussage ausführt, muss eine Impersonage-Berechtigung für den in der Ausweisung angegebenen Hauptverantwortlichen haben.
Eine Remotedienstbindung ist möglicherweise kein temporäres Objekt. Namen von Remotedienstbindungen, die mit # beginnen, sind zulässig. Sie sind jedoch dauerhafte Objekte.
Beispiele
A. Erstellen einer Remotedienstbindung
Im folgenden Beispiel wird eine Bindung für den Dienst //Adventure-Works.com/services/AccountsPayable erstellt. Service Broker führt mit dem Zertifikat, das sich im Besitz des APUser-Datenbankprinzipals befindet, eine Authentifizierung gegenüber dem Remotedienst durch und tauscht den Verschlüsselungsschlüssel für die Sitzung mit dem Remotedienst aus.
CREATE REMOTE SERVICE BINDING APBinding
TO SERVICE '//Adventure-Works.com/services/AccountsPayable'
WITH USER = APUser ;
B. Erstellen einer Remotedienstbindung mit anonymer Authentifizierung
Im folgenden Beispiel wird eine Bindung für den Dienst //Adventure-Works.com/services/AccountsPayable erstellt. Service Broker tauscht mit dem Zertifikat, das sich im Besitz des APUser-Datenbankprinzipals befindet, den Verschlüsselungsschlüssel für die Sitzung mit dem Remotedienst aus. Es findet keine Authentifizierung von Service Broker beim Remotedienst statt. In der Datenbank, die als Host für den Remotedienst dient, werden Nachrichten als guest-Benutzer übermittelt.
CREATE REMOTE SERVICE BINDING APBinding
TO SERVICE '//Adventure-Works.com/services/AccountsPayable'
WITH USER = APUser, ANONYMOUS=ON ;
Weitere Informationen
ALTER REMOTE SERVICE BINDING (Transact-SQL)
DROP REMOTE SERVICE BINDING (Transact-SQL)
EVENTDATA (Transact-SQL)