Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Managed Instance
I den här lektionen lär du dig att skapa initierardatabasen och alla service broker-objekt för initierare som används i den här självstudien. Kör de här stegen från en kopia av Management Studio som körs på samma dator som initierarinstansen databasmotorn.
Procedures
Skapa en Service Broker-slutpunkt
Kopiera och klistra in följande kod i ett frågeredigerarefönster och kör den sedan för att skapa en Service Broker-slutpunkt för den här instansen av databasmotorn. En Service Broker-slutpunkt anger nätverksadressen som Service Broker-meddelanden skickas till. Den här slutpunkten använder service broker-standardvärdet TCP-port 4022 och anger att fjärrinstanser av databasmotorn ska använda Windows-autentiseringsanslutningar för att skicka meddelanden.
Windows-autentisering fungerar när båda datorerna finns i samma domän eller finns i betrodda domäner. Om datorerna inte finns i betrodda domäner använder du certifikatsäkerhet för slutpunkterna. Mer information finns i Så här skapar du certifikat för Service Broker-transportsäkerhet.
USE master; GO IF EXISTS (SELECT * FROM sys.endpoints WHERE name = N'InstInitiatorEndpoint') DROP ENDPOINT InstInitiatorEndpoint; GO CREATE ENDPOINT InstInitiatorEndpoint STATE = STARTED AS TCP ( LISTENER_PORT = 4022 ) FOR SERVICE_BROKER ( AUTHENTICATION = WINDOWS ); GO
Skapa initierardatabasen, huvudnyckeln och användaren
Kopiera och klistra in följande kod i ett frågeredigerarefönster. Ändra lösenordet för -instruktionen
CREATE MASTER KEYoch kör sedan koden för att skapa måldatabasen som används för den här självstudien. Som standard harENABLE_BROKERnya databaser alternativet inställt på på. Koden skapar också huvudnyckeln och användaren som ska användas för kryptering och fjärranslutningar.USE master; GO IF EXISTS (SELECT * FROM sys.databases WHERE name = N'InstInitiatorDB') DROP DATABASE InstInitiatorDB; GO CREATE DATABASE InstInitiatorDB; GO USE InstInitiatorDB; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = N'<EnterStrongPassword2Here>'; GO CREATE USER InitiatorUser WITHOUT LOGIN; GO
Skapa initierarcertifikatet
Kopiera och klistra in följande kod i ett frågeredigerarefönster. Ändra filnamnet som anges i -instruktionen
BACKUP CERTIFICATEså att det refererar till en mapp i systemet. Kör sedan koden för att skapa initierarcertifikatet som används för att kryptera meddelanden. Mappen som du anger ska ha behörigheter som förhindrar åtkomst från andra konton än ditt Windows-konto och Windows-kontot som instansen av databasmotorn körs under. För lektion 3 måste du kopiera InstInitiatorCertificate.cer filen manuellt till en mapp som kan nås från målinstansen.CREATE CERTIFICATE InstInitiatorCertificate AUTHORIZATION InitiatorUser WITH SUBJECT = N'Initiator Certificate', EXPIRY_DATE = N'12/31/2010'; BACKUP CERTIFICATE InstInitiatorCertificate TO FILE = N'C:\storedcerts\$ampleSSBCerts\InstInitiatorCertificate.cer'; GO
Skapa meddelandetyperna
Kopiera och klistra in följande kod i ett frågeredigerarefönster och kör den sedan för att skapa meddelandetyperna för konversationen. Namnen och egenskaperna för meddelandetypen som anges här måste vara identiska med de som skapades i
InstTargetDBföregående lektion.CREATE MESSAGE TYPE [//BothDB/2InstSample/RequestMessage] VALIDATION = WELL_FORMED_XML; CREATE MESSAGE TYPE [//BothDB/2InstSample/ReplyMessage] VALIDATION = WELL_FORMED_XML; GO
Skapa kontraktet
Kopiera och klistra in följande kod i ett frågeredigerarefönster och kör den sedan för att skapa kontraktet för konversationen. Kontraktnamnet och egenskaperna som anges här måste vara identiska med det kontrakt som du skapar under
InstInitiatorDBnästa lektion.CREATE CONTRACT [//BothDB/2InstSample/SimpleContract] ([//BothDB/2InstSample/RequestMessage] SENT BY INITIATOR, [//BothDB/2InstSample/ReplyMessage] SENT BY TARGET); GO
Skapa initierarkön och tjänsten
Kopiera och klistra in följande kod i ett frågeredigerarefönster och kör den sedan för att skapa kön och tjänsten som används för målet. -instruktionen
CREATE SERVICEassocierar tjänsten med InstInitiatorQueue. Därför tas alla meddelanden som skickas till tjänsten emot i InstInitiatorQueue. AngerCREATE SERVICEockså att endast konversationer som använder BothDB/2InstSample/SimpleContract som skapades tidigare kan använda tjänsten som måltjänst.CREATE QUEUE InstInitiatorQueue; CREATE SERVICE [//InstDB/2InstSample/InitiatorService] AUTHORIZATION InitiatorUser ON QUEUE InstInitiatorQueue; GO
Skapa referenser till målobjekt
Kopiera och klistra in följande kod i ett frågeredigerarefönster.
FROM FILEÄndra satsen så att den refererar till mappen som du kopierade filen InstTargetCertificate.cer från steg 3 i lektion 1. Kör sedan koden för att skapa en målanvändare och hämta målcertifikatet.CREATE USER TargetUser WITHOUT LOGIN; CREATE CERTIFICATE InstTargetCertificate AUTHORIZATION TargetUser FROM FILE = N'C:\storedcerts\$ampleSSBCerts\InstTargetCertificate.cer'; GO
Skapa vägar
Kopiera och klistra in följande kod i ett frågeredigerarefönster. Ändra strängen MyTargetComputer till namnet på den dator som kör målinstansen. Kör sedan koden för att skapa vägar till måltjänsten och initierartjänsten och en fjärrtjänstbindning som associerar TargetUser med måltjänstvägen.
CREATE ROUTEFöljande instruktioner förutsätter att det inte finns några duplicerade tjänstnamn i målinstansen. Om flera databaser på målinstansen har tjänster med samma namn använder duBROKER_INSTANCEsatsen för att ange den databas där du vill öppna en konversation.DECLARE @Cmd AS NVARCHAR (4000); SET @Cmd = N'USE InstInitiatorDB; CREATE ROUTE InstTargetRoute WITH SERVICE_NAME = N''//TgtDB/2InstSample/TargetService'', ADDRESS = N''TCP://MyTargetComputer:4022'';'; EXECUTE (@Cmd); SET @Cmd = N'USE msdb CREATE ROUTE InstInitiatorRoute WITH SERVICE_NAME = N''//InstDB/2InstSample/InitiatorService'', ADDRESS = N''LOCAL'''; EXECUTE (@Cmd); GO CREATE REMOTE SERVICE BINDING TargetBinding TO SERVICE N'//TgtDB/2InstSample/TargetService' WITH USER = TargetUser; GO
Relaterade uppgifter
- SÄKERHETSKOPIERINGSCERTIFIKAT (Transact-SQL)
- SKAPA CERTIFIKAT (Transact-SQL)
- SKAPA KONTRAKT (Transact-SQL)
- SKAPA DATABAS
- SKAPA SLUTPUNKT (Transact-SQL)
- SKAPA HUVUDNYCKEL (Transact-SQL)
- SKAPA MEDDELANDETYP (Transact-SQL)
- SKAPA KÖ (Transact-SQL)
- SKAPA FJÄRRTJÄNSTBINDNING (Transact-SQL)
- SKAPA VÄG (Transact-SQL)
- SKAPA TJÄNST (Transact-SQL)
- SKAPA ANVÄNDARE (Transact-SQL)
- KÖR (Transact-SQL)
- sp_addlinkedserver (Transact-SQL)
- Dialogsäkerhet för Service Broker
- Konversationsarkitektur
- Tjänstarkitektur
Nästa steg
Du har skapat initierardatabaserna för självstudien. Därefter slutför du konfigurationen av måldatabasen genom att skapa målobjekten som har beroenden för initierarobjekt.