Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Maakt een binding aan die de beveiligingsgegevens definieert die gebruikt moeten worden om een gesprek met een externe dienst te starten.
Transact-SQL syntaxis-conventies
Syntax
CREATE REMOTE SERVICE BINDING binding_name
[ AUTHORIZATION owner_name ]
TO SERVICE 'service_name'
WITH USER = user_name [ , ANONYMOUS = { ON | OFF } ]
[ ; ]
Arguments
binding_name
Is de naam van de externe servicebinding die gemaakt moet worden. Server-, database- en schemanamen kunnen niet worden gespecificeerd. De binding_name moet een geldige systeemnaam zijn.
AUTHORIZATION
owner_name
Stelt de eigenaar van de binding in op de gespecificeerde databasegebruiker of rol. Wanneer de huidige gebruiker dbo of sa is, kan owner_name de naam zijn van elke geldige gebruiker of rol. Anders moet owner_name de naam zijn van de huidige gebruiker, de naam van een gebruiker waarvoor de huidige gebruiker IMPERSONATE-rechten heeft, of de naam van een rol waartoe de huidige gebruiker behoort.
OM SERVICE 'service_name'
Specificeert de externe dienst die bindt aan de gebruiker die in de WITH-clausule USER wordt geïdentificeerd.
USER = user_name
Specificeert de databaseprincipal die eigenaar is van het certificaat dat is gekoppeld aan de externe dienst die door de TO-clausule SERVICE is geïdentificeerd. Dit certificaat wordt gebruikt voor encryptie en authenticatie van berichten die met de externe dienst worden uitgewisseld.
ANONIEM
Geeft aan of anonieme authenticatie wordt gebruikt bij communicatie met de externe dienst. Als ANONYMOUS = ON, wordt anonieme authenticatie gebruikt en vinden de behandelingen in de externe database plaats als lid van de publieke vaste databaserol. Als ANONIEM = UIT, vinden bewerkingen in de externe database plaats als een specifieke gebruiker in die database. Als deze clausule niet is gespecificeerd, staat de standaard UIT.
Remarks
Service Broker gebruikt een remote service binding om het certificaat te vinden dat gebruikt kan worden voor een nieuw gesprek. De publieke sleutel in het certificaat dat aan user_name gekoppeld is, wordt gebruikt om berichten die naar de externe dienst worden gestuurd te authenticeren en om een sessiesleutel te versleutelen die vervolgens wordt gebruikt om het gesprek te versleutelen. Het certificaat voor user_name moet overeenkomen met het certificaat van een gebruiker in de database die de externe dienst host.
Een remote service binding is alleen nodig om services te initiëren die communiceren met doelservices buiten de SQL Server-instantie. Een database die een initierende service host, moet remote service-bindings bevatten voor alle doelservices buiten de SQL Server-instantie. Een database die een doelservice host, hoeft geen externe servicebindings te bevatten voor de initierende services die communiceren met de doeldienst. Wanneer de initiator en doelservices zich in dezelfde instantie van SQL Server bevinden, is geen remote service binding nodig. Als er echter een remote service binding aanwezig is waarbij de service_name gespecificeerd voor TO SERVICE overeenkomt met de naam van de lokale service, zal Service Broker de binding gebruiken.
Wanneer ANONIEM = AAN, verbindt de initierende dienst zich met de doelservice als lid van de publieke vaste databaserol. Standaard hebben leden van deze rol geen toestemming om verbinding te maken met een database. Om een bericht succesvol te verzenden, moet de doel-database de publieke rol CONNECT-toestemming geven voor de database en SEND toestemming voor de doelservice.
Wanneer een gebruiker meer dan één certificaat bezit, selecteert Service Broker het certificaat met de laatste vervaldatum uit de certificaten die momenteel geldig zijn en als BESCHIKBAAR VOOR BEGIN_DIALOG zijn gemarkeerd.
Permissions
Rechten voor het aanmaken van een externe service binden standaard naar de gebruiker die in de USER clausule wordt genoemd, leden van de db_owner vaste databaserol, leden van de db_ddladmin vaste databaserol en leden van de sysadmin vaste serverrol.
De gebruiker die de CREATE REMOTE SERVICE BINDING instructie uitvoert, moet impersonage-toestemming hebben voor de principal die in de instructie is gespecificeerd.
Een remote service binding mag geen tijdelijk object zijn. Afstandsservice-bindingsnamen die beginnen met # zijn toegestaan, maar zijn permanente objecten.
Examples
A. Het creëren van een remote service binding
Het volgende voorbeeld creëert een binding voor de dienst //Adventure-Works.com/services/AccountsPayable. Service Broker gebruikt het certificaat van de APUser databaseprincipal om zich te authenticeren bij de externe dienst en om de sessie-encryptiesleutel uit te wisselen met de externe service.
CREATE REMOTE SERVICE BINDING APBinding
TO SERVICE '//Adventure-Works.com/services/AccountsPayable'
WITH USER = APUser ;
B. Het creëren van een remote service binding met anonieme authenticatie
Het volgende voorbeeld creëert een binding voor de dienst //Adventure-Works.com/services/AccountsPayable. Service Broker gebruikt het certificaat van de APUser databaseprincipal om de sessie-encryptiesleutel uit te wisselen met de externe service. De makelaar authenticeert zich niet bij de externe dienst. In de database die de externe dienst host, worden berichten afgeleverd als gastgebruiker .
CREATE REMOTE SERVICE BINDING APBinding
TO SERVICE '//Adventure-Works.com/services/AccountsPayable'
WITH USER = APUser, ANONYMOUS=ON ;
Zie ook
ALTER REMOTE SERVICE BINDING (Transact-SQL)
DROP REMOTE SERVICE BINDING (Transact-SQL)
EVENTDATA (Transact-SQL)