CREATE REMOTE SERVICE BINDING (Transact-SQL)

Gäller för:SQL Server

Skapar en bindning som definierar vilka säkerhetsuppgifter som ska användas för att initiera en konversation med en fjärrtjänst.

Transact-SQL syntaxkonventioner

Syntax

CREATE REMOTE SERVICE BINDING binding_name   
   [ AUTHORIZATION owner_name ]   
   TO SERVICE 'service_name'   
   WITH  USER = user_name [ , ANONYMOUS = { ON | OFF } ]  
[ ; ]  

Arguments

binding_name
Är namnet på den fjärrtjänstbindning som ska skapas. Server-, databas- och schemanamn kan inte specificeras. binding_name måste vara ett giltigt sysname.

AUTHORIZATION owner_name
Sätter ägaren av bindningen till den angivna databasanvändaren eller rollen. När den nuvarande användaren är dbo eller sa kan owner_name vara namnet på vilken giltig användare eller roll som helst. Annars måste owner_name vara namnet på den nuvarande användaren, namnet på en användare som den nuvarande användaren har IMPERSONATE-behörigheter för, eller namnet på en roll som den nuvarande användaren tillhör.

FÖR ATT SERVICE 'service_name'
Specificerar att fjärrtjänsten ska bindas till användaren som identifieras i WITH-klausulen USER .

USER = user_name
Specificerar databasens huvudperson som äger certifikatet kopplat till den fjärrtjänst som identifieras av TO-klausulen SERVICE . Detta certifikat används för kryptering och autentisering av meddelanden som utbyts med fjärrtjänsten.

ANONYM
Specificerar om anonym autentisering används vid kommunikation med fjärrtjänsten. Om ANONYMOUS = ON används anonym autentisering och operationer i fjärrdatabasen sker som medlem i den publika fasta databasrollen. Om ANONYM = AV sker operationer i fjärrdatabasen som en specifik användare i den databasen. Om denna klausul inte anges är standardinställningen AV.

Remarks

Service Broker använder en fjärrservicebindning för att hitta certifikatet och använda för en ny konversation. Den publika nyckeln i certifikatet som är kopplat till user_name används för att autentisera meddelanden som skickas till fjärrtjänsten och för att kryptera en sessionsnyckel som sedan används för att kryptera konversationen. Certifikatet för user_name måste motsvara certifikatet för en användare i databasen som är värd för fjärrtjänsten.

En fjärrtjänstbindning är endast nödvändig för att initiera tjänster som kommunicerar med måltjänster utanför SQL Server-instansen. En databas som är värd för en initierande tjänst måste innehålla fjärrtjänstbindningar för alla måltjänster utanför SQL Server-instansen. En databas som är värd för en måltjänst behöver inte innehålla fjärrtjänstbindningar för de initierande tjänster som kommunicerar med måltjänsten. När initiator- och måltjänsterna är i samma instans av SQL Server behövs ingen fjärrtjänstbindning. Om dock en fjärrtjänstbindning finns där den service_name specificerad för TO SERVICE matchar namnet på den lokala tjänsten, kommer Service Broker att använda bindningen.

När ANONYMOUS = ON ansluter den initierande tjänsten till måltjänsten som medlem i den publika fasta databasrollen. Som standard har medlemmar i denna roll inte behörighet att ansluta till en databas. För att framgångsrikt skicka ett meddelande måste måldatabasen ge den publika rollen CONNECT-behörighet för databasen och SEND behörighet för måltjänsten.

När en användare äger mer än ett certifikat väljer Service Broker certifikatet med senaste utgångsdatum bland de certifikat som för närvarande är giltiga och markerade som TILLGÄNGLIGA FÖR BEGIN_DIALOG.

Permissions

Behörigheter för att skapa en fjärrtjänst binder som standard till användaren som anges i klausulen USER , medlemmar i den db_owner fasta databasrollen, medlemmar i den db_ddladmin fasta databasrollen och medlemmar i sysadmin-funktionen för fasta servern.

Användaren som kör satsen CREATE REMOTE SERVICE BINDING måste ha impersonat-behörighet för den principal som anges i satsen.

En fjärrtjänstbindning kanske inte är ett tillfälligt objekt. Fjärrtjänstbindningsnamn som börjar med # är tillåtna, men är permanenta objekt.

Examples

A. Skapa en fjärrtjänstbindning

Följande exempel skapar en bindning för tjänsten //Adventure-Works.com/services/AccountsPayable. Service Broker använder certifikatet som ägs av APUser databasens huvudperson för att autentisera sig mot fjärrtjänsten och för att utbyta sessionskrypteringsnyckeln med fjärrtjänsten.

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

B. Skapa en fjärrtjänstbindning med anonym autentisering

Följande exempel skapar en bindning för tjänsten //Adventure-Works.com/services/AccountsPayable. Service Broker använder certifikatet som ägs av APUser databasens huvudperson för att utbyta sessionskrypteringsnyckeln med fjärrtjänsten. Mäklaren autentiserar sig inte mot fjärrtjänsten. I databasen som är värd för fjärrtjänsten levereras meddelanden som gästanvändaren .

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

Se även

ALTER REMOTE SERVICE BINDING (Transact-SQL)
DROP REMOTE SERVICE BINDING (Transact-SQL)
HÄNDELSEDATA (Transact-SQL)