Segurança de diálogo para notificações de eventos
A segurança de caixa de diálogo do Service Broker deve ser configurada para notificações de eventos que enviam mensagens a um agente de serviços em um servidor remoto. A segurança de diálogo deve ser configurada manualmente, de acordo com o modelo de segurança total de diálogo do Service Broker. Para obter mais informações, consulte “Segurança total” em Segurança de diálogo do Service Broker. O modelo de segurança total habilita criptografia e decodificação de mensagens enviadas para e de servidores remotos. Embora as notificações de eventos sejam enviadas em uma única direção, outras mensagens, como erros, também são retornadas para a direção oposta.
Configurando segurança de diálogo para notificações de eventos
O processo necessário para implementar segurança de diálogo para notificação de eventos é descrito nas etapas a seguir. Elas compreendem ações a serem efetuadas tanto no servidor de origem, quanto no servidor de destino. O servidor de origem é o servidor no qual a notificação de eventos está sendo criada. O servidor de destino é o servidor que recebe a mensagem de notificação de eventos. É necessário completar as ações de cada etapa em ambos os servidores, de origem e de destino, para poder passar à etapa seguinte.
Importante |
---|
Todos os certificados devem ser criados com datas válidas de início e de validade. |
Etapa 1: Estabeleça um número da porta de TCP e o nome do serviço de destino.
Estabeleça a porta de TCP pela qual o servidor de origem e o servidor de destino receberão mensagens. Você também deve determinar o nome do serviço de destino.
Etapa 2: Configure criptografia e compartilhamento de certificados para autenticação em nível de banco de dados.
Efetue as ações abaixo nos servidores de origem e de destino.
Servidor de origem |
Servidor de destino |
---|---|
Escolha ou crie um banco de dados para guardar a notificação de eventos e a chave mestra. |
Escolha ou crie um banco de dados para guardar a chave mestra. |
Se não existir uma chave mestra para o banco de dados de origem, crie uma chave mestra. É necessária uma chave mestra em ambos os bancos de dados (origem e destino), para ajudar a proteger seus respectivos certificados. |
Se não existir uma chave mestra para o banco de dados de destino, crie uma chave mestra. |
Crie um logon e um usuário correspondente para o banco de dados de origem. |
Crie um logon e um usuário correspondente para o banco de dados de destino. |
Crie um certificado de propriedade do usuário do banco de dados de origem. |
Crie um certificado de propriedade do usuário do banco de dados de destino. |
Faça um backup do certificado em um arquivo que possa ser acessado pelo servidor de destino. |
Faça um backup do certificado em um arquivo que possa ser acessado pelo servidor de origem. |
Crie um usuário, especificando o usuário do banco de dados de destino e WITHOUT LOGIN. Este usuário será proprietário do certificado de banco de dados de destino a ser criado a partir do arquivo de backup. O usuário não precisa ser mapeado para um logon, pois seu único propósito é possuir o certificado de banco de dados de destino criado na etapa 3 abaixo. |
Crie um usuário, especificando o usuário do banco de dados de origem e WITHOUT LOGIN. Este usuário será proprietário do certificado de banco de dados de origem a ser criado a partir do arquivo de backup. O usuário não precisa ser mapeado para um logon, pois seu único propósito é possuir o certificado de banco de dados de origem criado na etapa 3 abaixo. |
Etapa 3: Compartilhe os certificados e conceda permissões para autenticação em nível de banco de dados.
Efetue as ações abaixo nos servidores de origem e de destino.
Servidor de origem |
Servidor de destino |
---|---|
Crie um certificado a partir do arquivo de backup do certificado de destino, especificando o usuário do banco de dados de destino como o proprietário. |
Crie um certificado a partir do arquivo de backup do certificado de origem, especificando o usuário do banco de dados de origem como o proprietário. |
Conceda permissão para criar a notificação de eventos para o usuário do banco de dados de origem. Para obter mais informações sobre esta permissão, consulte CREATE EVENT NOTIFICATION (Transact-SQL). |
Conceda a permissão REFERENCES ao usuário do banco de dados de destino no contrato de notificações de eventos existentes do Service Broker: https://schemas.microsoft.com/SQL/Notifications/PostEventNotification. |
Crie uma associação de serviço remoto ao serviço de destino e especifique as credenciais do usuário do banco de dados de destino. A associação do serviço remoto garante que a chave pública no certificado de propriedade do usuário do banco de dados de origem autentique as mensagens enviadas ao servidor de destino. |
Conceda permissões CREATE QUEUE, CREATE SERVICE e CREATE SCHEMA ao usuário do banco de dados de destino. |
|
Caso ainda não esteja conectado ao banco de dados como usuário do banco de dados de destino, faça-o agora. |
|
Crie uma fila para receber as mensagens de notificação de eventos e crie um serviço para entregar as mensagens. |
|
Conceda permissão SEND no serviço de destino ao usuário do banco de dados de origem. |
Forneça o identificador do agente de serviços do banco de dados de origem para o servidor de destino. Esse identificador pode ser obtido consultando-se a coluna service_broker_guid da exibição de catálogo sys.databases. Para uma notificação de eventos de nível de servidor, use o identificador do agente de serviços do msdb. |
Forneça o identificador do agente de serviços do banco de dados de destino para o servidor de origem. |
Etapa 4: Crie rotas e configure autenticação em nível de servidor.
Efetue as ações abaixo nos servidores de origem e de destino.
Servidor de origem |
Servidor de destino |
---|---|
Crie uma rota para o serviço de destino e especifique o identificador do agente de serviços do banco de dados de destino e o número de porta de TCP estabelecido. |
Crie uma rota para o serviço de origem e especifique o identificador do agente de serviços do banco de dados de origem e o número de porta de TCP estabelecido. Para especificar o serviço de origem, use o seguinte serviço fornecido: https://schemas.microsoft.com/SQL/Notifications/EventNotificationService. |
Alterne para o banco de dados mestre para configurar autenticação em nível de servidor. |
Alterne para o banco de dados mestre para configurar autenticação em nível de servidor. |
Se não existir uma chave mestra para o banco de dados de mestre, crie uma chave mestra. |
Se não existir uma chave mestra para o banco de dados de mestre, crie uma chave mestra. |
Crie um certificado que autentique o banco de dados. |
Crie um certificado que autentique o banco de dados. |
Faça um backup do certificado em um arquivo que possa ser acessado pelo servidor de destino. |
Faça um backup do certificado em um arquivo que possa ser acessado pelo servidor de origem. |
Crie um ponto de extremidade e especifique o número de porta de TCP estabelecido, FOR SERVICE_BROKER (AUTHENTICATION = CERTIFICATE certificate_name) e o nome do certificado de autenticação. |
Crie um ponto de extremidade e especifique o número de porta de TCP estabelecido, FOR SERVICE_BROKER (AUTHENTICATION = CERTIFICATE certificate_name) e o nome do certificado de autenticação. |
Crie um logon e especifique o logon do servidor de destino. |
Crie um logon e especifique o logon do servidor de origem. |
Conceda permissão CONNECT no ponto de extremidade para o logon do autenticador de destino. |
Conceda permissão CONNECT no ponto de extremidade para o logon do autenticador de origem. |
Crie um usuário e especifique o logon do autenticador de destino. |
Crie um usuário e especifique o logon do autenticador de origem. |
Etapa 5: Compartilhe certificados para autenticação em nível de servidor e crie a notificação de eventos.
Efetue as ações abaixo nos servidores de origem e de destino.
Servidor de origem |
Servidor de destino |
---|---|
Crie um certificado a partir do arquivo de backup do certificado de destino, especificando o autenticador de destino como o proprietário. |
Crie um certificado a partir do arquivo de backup do certificado de origem, especificando o autenticador de origem como o proprietário. |
Alterne para o banco de dados de origem no qual criar a notificação de eventos e, caso ainda não esteja conectado como usuário do banco de dados de origem, faça-o agora. |
Alterne para o banco de dados de destino a receber as mensagens de notificação de eventos. |
Crie a notificação de eventos e especifique o agente de serviços e o identificador do banco de dados de destino. |
|
Consulte também