Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nuevo: 15 de septiembre de 2007
En esta lección, aprenderá a crear la base de datos de destino y todos los objetos de destino de Service Broker que no tienen dependencias en la base de datos de iniciador. Ejecute estos pasos desde una copia de Management Studio que se ejecuta en el mismo equipo que la instancia de destino de Database Engine (Motor de base de datos).
Procedimientos
Crear un extremo de Service Broker
Copie y pegue el código siguiente en una ventana del Editor de consultas. A continuación, ejecútelo para crear un extremo de Service Broker para esta instancia de Database Engine (Motor de base de datos). Un extremo de Service Broker establece la dirección de red a la que se envían los mensajes de Service Broker. Este extremo utiliza el valor predeterminado de Service Broker (puerto TCP 4022) y establece que las instancias remotas de Database Engine (Motor de base de datos) utilicen conexiones con autenticación de Windows para enviar los mensajes.
La autenticación de Windows funciona cuando ambos equipos están en el mismo dominio o en dominios de confianza. Si los equipos no están en dominios de confianza, utilice la seguridad certificada para los extremos. Para obtener más información, vea Cómo crear certificados para la seguridad de transporte de Service Broker (Transact-SQL).
USE master; GO IF EXISTS (SELECT * FROM master.sys.endpoints WHERE name = N'InstTargetEndpoint') DROP ENDPOINT InstTargetEndpoint; GO CREATE ENDPOINT InstTargetEndpoint STATE = STARTED AS TCP ( LISTENER_PORT = 4022 ) FOR SERVICE_BROKER (AUTHENTICATION = WINDOWS ); GO
Crear la base de datos de destino, la clave maestra y el usuario
Copie y pegue el código siguiente en una ventana del Editor de consultas. Cambie la contraseña de la instrucción CREATE MASTER KEY. A continuación, ejecute el código para crear la base de datos de destino utilizada en este tutorial. De forma predeterminada, las nuevas bases de datos tienen la opción ENABLE_BROKER activada. El código también crea el usuario y la clave maestra que se utilizarán para el cifrado y las conexiones remotas.
USE master; GO IF EXISTS (SELECT * FROM sys.databases WHERE name = N'InstTargetDB') DROP DATABASE InstTargetDB; GO CREATE DATABASE InstTargetDB; GO USE InstTargetDB; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = N'<EnterStrongPassword1Here>'; GO CREATE USER TargetUser WITHOUT LOGIN; GO
Crear el certificado de destino
Copie y pegue el código siguiente en una ventana del Editor de consultas. Cambie el nombre de archivo que se especifica en la instrucción BACKUP CERTIFICATE para hacer referencia a una carpeta de su sistema. A continuación, ejecute el código para crear el certificado de destino que se utiliza para cifrar los mensajes. La carpeta especificada debe tener permisos que eviten el acceso desde cuentas distintas a su cuenta de Windows y a la cuenta de Windows que ejecuta la instancia de Database Engine (Motor de base de datos). En la Lección 2 debe copiar manualmente el archivo InstTargetCertificate.cer en una carpeta a la que se pueda tener acceso desde la instancia de iniciador.
CREATE CERTIFICATE InstTargetCertificate AUTHORIZATION TargetUser WITH SUBJECT = 'Target Certificate', EXPIRY_DATE = N'12/31/2010'; BACKUP CERTIFICATE InstTargetCertificate TO FILE = N'C:\storedcerts\$ampleSSBCerts\InstTargetCertificate.cer'; GO
Crear los tipos de mensaje
Copie y pegue el código siguiente en una ventana del Editor de consultas y ejecútelo para crear los tipos de mensaje para la conversación. Los nombres y propiedades del tipo de mensaje especificados deben ser idénticos a los que van a crear en InstInitiatorDB, en la lección siguiente.
CREATE MESSAGE TYPE [//BothDB/ 2InstSample/RequestMessage] VALIDATION = WELL_FORMED_XML; CREATE MESSAGE TYPE [//BothDB/ 2InstSample/ReplyMessage] VALIDATION = WELL_FORMED_XML; GO
Crear el contrato
Copie y pegue el código siguiente en una ventana del Editor de consultas. A continuación, ejecútelo para crear el contrato para la conversación. Los nombres y propiedades del contrato especificados deben ser idénticos al contrato que se va a crear en InstInitiatorDB, en la lección siguiente.
CREATE CONTRACT [//BothDB/ 2InstSample/SimpleContract] ([//BothDB/ 2InstSample/RequestMessage] SENT BY INITIATOR, [//BothDB/ 2InstSample/ReplyMessage] SENT BY TARGET ); GO
Crear el servicio y la cola de destino
Copie y pegue el código siguiente en una ventana del Editor de consultas. A continuación, ejecútelo para crear la cola y el servicio que se utilizan para el destino. La instrucción CREATE SERVICE asocia el servicio a InstTargetQueue para que todos los mensajes que se envían al servicio se reciban en InstTargetQueue. CREATE SERVICE especifica también que sólo las conversaciones que utilizan la ruta //BothDB/ 2InstSample/SimpleContract creada anteriormente pueden utilizar el servicio como un servicio de destino.
CREATE QUEUE InstTargetQueue; CREATE SERVICE [//TgtDB/2InstSample/TargetService] AUTHORIZATION TargetUser ON QUEUE InstTargetQueue ([//BothDB/2InstSample/SimpleContract]); GO
Pasos siguientes
Ha creado correctamente las bases de datos que se utilizarán en el tutorial. A continuación, creará y configurará InstInitiatorDB con los objetos necesarios para el extremo de iniciador de una conversación de Service Broker. Vea Lección 2: Crear la base de datos del iniciador.
Vea también
Otros recursos
BACKUP CERTIFICATE (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL)
CREATE CONTRACT (Transact-SQL)
CREATE DATABASE (Transact-SQL)
CREATE ENDPOINT (Transact-SQL)
CREATE MASTER KEY (Transact-SQL)
CREATE MESSAGE TYPE (Transact-SQL)
CREATE QUEUE (Transact-SQL)
CREATE SERVICE (Transact-SQL)
CREATE USER (Transact-SQL)
Seguridad de diálogo de Service Broker
Arquitectura de la conversación
Arquitectura de servicio