Freigeben über


CREATE REMOTE SERVICE BINDING (Transact-SQL)

Aktualisiert: 15. September 2007

Erstellt eine Bindung, die die zum Initiieren einer Konversation mit einem Remotedienst zu verwendenden Sicherheitsanmeldeinformationen definiert.

Themenlink (Symbol)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 Schemanamen können nicht angegeben werden. Bei binding_name muss es sich um einen gültigen sysname handeln.
  • AUTHORIZATION owner_name
    Legt den Besitzer der Bindung auf den angegebenen Datenbankbenutzer oder die angegebene Datenbankrolle fest. Wenn dbo oder sa der aktuelle Benutzer ist, kann owner_name der Name jedes gültigen Benutzers bzw. jeder 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.
  • TO SERVICE 'service_name'
    Gibt den Remotedienst an, der an den in der WITH USER-Klausel identifizierten Benutzer gebunden werden soll.
  • USER = user_name
    Gibt den Datenbankprinzipal an, der das Zertifikat besitzt, das dem von der TO SERVICE-Klausel identifizierten Remotedienst zugeordnet wird. 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 finden als Mitglieder der festen Datenbankrolle public statt. 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. In Service Broker-Dialogsicherheit wird beschrieben, wie Remotedienstbindungen Prinzipalen im Rahmen der SQL Server-Dialogsicherheit zugeordnet werden.

Hinweise

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_name zugeordnet 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 die Zieldienste in der gleichen Instanz von SQL Server befinden, ist keine Remotedienstbindung erforderlich. Wenn jedoch eine Remotedienstbindung vorhanden ist, wenn der für TO SERVICE angegebene service_name mit dem Namen des lokalen Diensts übereinstimmt, verwendet Service Broker die Bindung.

Wenn ANONYMOUS = ON angegeben ist, 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. Damit eine Nachricht erfolgreich gesendet wird, muss die Zieldatenbank der public-Rolle die CONNECT-Berechtigung für die Datenbank und die SEND-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

Über die Berechtigung zum Erstellen einer Remotedienstbindung verfügen standardmäßig in der USER-Klausel benannte Benutzer, Mitglieder der festen Datenbankrollen db_owner und db_ddladmin sowie Mitglieder der festen Serverrolle sysadmin.

Der Benutzer, der die CREATE REMOTE SERVICE BINDING-Anweisung ausführt, muss berechtigt sein, die Identität des in der Anweisung angegebenen Prinzipals anzunehmen.

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 verwendet das Zertifikat im Besitz des APUser-Datenbankprinzipals für die Authentifizierung beim Remotedienst und den Austausch des Sitzungsverschlüsselungsschlüssels mit dem Remotedienst.

CREATE REMOTE SERVICE BINDING APBinding
    TO SERVICE '//Adventure-Works.com/services/AccountsPayable'
    WITH USER = APUser ;

B. Erstellen einer Remotedienstbindung mithilfe der anonymen Authentifizierung

Im folgenden Beispiel wird eine Bindung für den Dienst //Adventure-Works.com/services/AccountsPayable erstellt. Service Broker verwendet das Zertifikat im Besitz des APUser-Datenbankprinzipals für den Austausch des Sitzungsverschlüsselungsschlüssels mit dem Remotedienst. 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 ;

Siehe auch

Verweis

ALTER REMOTE SERVICE BINDING (Transact-SQL)
DROP REMOTE SERVICE BINDING (Transact-SQL)
EVENTDATA (Transact-SQL)

Andere Ressourcen

Durchführen einer Konversation zwischen Instanzen
Sicherheitsüberlegungen für Service Broker
Zertifikate für die Dialogsicherheit

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

15. September 2007

Geänderter Inhalt:
  • Angegebene Remotedienstbindungen gelten für lokale Dienste.