Compartir a través de


Lección 1: Crear la base de datos de destino

Se aplica a: SQL Server Azure SQL Managed Instance

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 del iniciador. Ejecute estos pasos desde una copia de Management Studio que se ejecute en el mismo equipo que la instancia de destino del 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 punto de conexión de Service Broker para esta instancia del 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 puerto TCP predeterminado de Service Broker 4022 y establece que las instancias remotas del Motor de base de datos utilizarán conexiones con la 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, use la seguridad de certificados para los extremos. Para obtener más información, consulte 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 en la instrucción CREATE MASTER KEY. Después, ejecútelo para crear la base de datos de destino que se usa para este tutorial. De manera predeterminada, las bases de datos nuevas tienen la opción ENABLE_BROKER establecida en on (activada). El código también crea la clave maestra y el usuario que se usarán para admitir cifrado y 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 del sistema. Después, ejecútelo para crear el certificado de destino que se usa para cifrar los mensajes. La carpeta que especifique debería tener permisos que impidan el acceso desde cuentas que no sean la suya de Windows y la cuenta de Windows con la que se ejecuta la instancia del Motor de base de datos. Para la lección 2 debe copiar manualmente el archivo InstTargetCertificate.cer en una carpeta a la que se pueda tener acceso desde la instancia del 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 después ejecútelo para crear los tipos de mensaje de la conversación. Los nombres y propiedades de tipos de mensaje que se especifiquen aquí deben ser idénticos a los que se crearán 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. Después, ejecútelo para crear el contrato para la conversación. El nombre y las propiedades de contrato que se especifiquen aquí deben ser idénticos a los del contrato que se 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 la cola y el servicio de destino

  • Copie y pegue el código siguiente en una ventana del Editor de consultas. Después, ejecútelo para crear la cola y el servicio que se usa 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 también especifica que solo las conversaciones que usan //BothDB/ 2InstSample/SimpleContract que se creó anteriormente puedan usar el servicio como 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 usarán para el tutorial. Después, creará InstInitiatorDB y la configurará con los objetos necesarios para admitir el extremo iniciador de una conversación de Service Broker. Para obtener más información, vea Lección 2: Crear la base de datos del iniciador.

Vea también