Configurazione della sicurezza del dialogo per le notifiche degli eventiConfigure Dialog Security for Event Notifications

Service BrokerService Broker per le notifiche degli eventi che prevedono l'invio di messaggi a Service Broker su un server remoto. dialog security should be configured for event notifications that send messages to a service broker on a remote server. È necessario configurare manualmente la sicurezza del dialogo in base al modello di sicurezza avanzata del dialogo di Service BrokerService Broker .Dialog security must be manually configured according to the Service BrokerService Broker dialog full-security model. Il modello di sicurezza avanzata attiva la crittografia e la decrittografia di messaggi inviati da e a server remoti.The full-security model enables encryption and decryption of messages that are sent to and from remote servers. Sebbene le notifiche degli eventi vengano inviate in una sola direzione, gli altri messaggi, ad esempio gli errori, vengono anche restituiti nella direzione opposta.Although event notifications are sent in one direction, other messages, such as errors, are also returned in the opposite direction.

Configurazione della sicurezza del dialogo per le notifiche degli eventiConfiguring Dialog Security for Event Notifications

Nella procedura seguente viene descritto il processo necessario per l'implementazione della sicurezza del dialogo per la notifica degli eventi.The process required to implement dialog security for event notification is described in the following steps. La procedura include azioni da eseguire sia sul server di origine sia sul server di destinazione.These steps include actions to take on both the source server and the target server. Nel server di origine viene creata la notifica degli eventi.The source server is the server on which the event notification is being created. Il server di destinazione riceve il messaggio di notifica degli eventi.The target server is the server that receives the event notification message. È necessario completare le azioni di ogni passaggio sia per il server di origine sia per il server di destinazione prima di andare al passaggio successivo.You must complete the actions in each step for both the source server and the target server before you continue to the next step.

Importante

È necessario creare tutti i certificati con date di inizio e di scadenza valide.All certificates must be created with valid start and expiration dates.

Passaggio 1: impostare un numero di porta TCP e un nome del servizio di destinazione.Step 1: Establish a TCP port number and target service name.

Impostare la porta TCP in cui il server di origine e il server di destinazione riceveranno i messaggi.Establish the TCP port on which both the source server and the target server will receive messages. È inoltre necessario determinare il nome del servizio di destinazione.You must also determine the name of the target service.

Passaggio 2: configurare la crittografia e la condivisione dei certificati per l'autenticazione a livello di database.Step 2: Configure encryption and certificate sharing for database-level authentication.

Completare le azioni seguenti nel server di origine e in quello di destinazione.Complete the following actions on both the source and target servers.

Server di origineSource server Server di destinazioneTarget server
Scegliere o creare un database per contenere la notifica degli eventi e la chiave master.Choose or create a database to hold the event notification and master key. Scegliere o creare un database per contenere la chiave master.Choose or create a database to hold the master key.
Creare una chiave masterse non ne è presente una per il database di origine.If no master key exists for the source database, create a master key. È necessaria una chiave master sia nel database di origine sia in quello di destinazione per consentire la protezione dei rispettivi certificati.A master key is required on both the source and target databases to help secure their respective certificates. Se non è presente alcuna chiave master per il database di destinazione, crearne una.If no master key exists for the target database, create a master key.
Creare un account di accesso e un utente corrispondente per il database di origine.Create a login and a corresponding user for the source database. Creare un account di accesso e un utente corrispondente per il database di destinazione.Create a login and a corresponding user for the target database.
Creare un certificato di proprietà dell'utente del database di origine.Create a certificate that is owned by the user of the source database. Creare un certificato di proprietà dell'utente del database di destinazione.Create a certificate that is owned by the user of the target database.
Eseguire il backup del certificato in un file accessibile al server di destinazione.Back up the certificate to a file that can be accessed by the target server. Eseguire il backup del certificato in un file accessibile al server di origine.Back up the certificate to a file that can be accessed by the source server.
Creare un utente, specificando l'utente del database di destinazione e WITHOUT LOGIN.Create a user, specifying the user of the target database, and WITHOUT LOGIN. Questo utente sarà proprietario del certificato del database di destinazione da creare dal file di backup.This user will own the target database certificate to be created from the backup file. Non è necessario eseguire il mapping dell'utente a un account di accesso, poiché l'unico scopo di questo utente è essere proprietario del certificato del database di destinazione creato al passaggio 3 seguente.The user does not have to be mapped to a login, because the only purpose of this user is to own the target database certificate created in step 3 that follows. Creare un utente, specificando l'utente del database di origine e WITHOUT LOGIN.Create a user, specifying the user of the source database, and WITHOUT LOGIN. Questo utente sarà proprietario del certificato del database di origine da creare dal file di backup.This user will own the source database certificate to be created from the backup file. Non è necessario eseguire il mapping dell'utente a un account di accesso, poiché l'unico scopo di questo utente è essere proprietario del certificato del database di origine creato al passaggio 3 seguente.The user does not have to be mapped to a login, because the only purpose of this user is to own the source database certificate created in step 3 that follows.

Passaggio 3: condividere i certificati e concedere le autorizzazioni per l'autenticazione a livello di database.Step 3: Share certificates and grant permissions for database-level authentication.

Completare le azioni seguenti nel server di origine e in quello di destinazione.Complete the following actions on both the source and target servers.

Server di origineSource server Server di destinazioneTarget server
Creare un certificato dal file di backup del certificato di destinazione, specificando l'utente del database di destinazione come proprietario.Create a certificate from the backup file of the target certificate, specifying the target database user as the owner. Creare un certificato dal file di backup del certificato di origine, specificando l'utente del database di origine come proprietario.Create a certificate from the backup file of the source certificate, specifying the source database user as the owner.
Concedere l'autorizzazione per la creazione della notifica degli eventi all'utente del database di origine.Grant permission to create the event notification to the source database user. Per altre informazioni su questa autorizzazione, vedere CREATE EVENT NOTIFICATION (Transact-SQL)se non ne è presente una per il database di origine.For more information about this permission, see CREATE EVENT NOTIFICATION (Transact-SQL). Concedere l'autorizzazione REFERENCES all'utente del database di destinazione sul contratto Service BrokerService Broker per le notifiche degli eventi esistente: http://schemas.microsoft.com/SQL/Notifications/PostEventNotification.Grant REFERENCES permission to the target database user on the existing event notifications Service BrokerService Broker contract: http://schemas.microsoft.com/SQL/Notifications/PostEventNotification.
Creare un'associazione al servizio remoto al servizio di destinazione e specificare le credenziali dell'utente del database di destinazione.Create a remote service binding to the target service and specify the credentials of the target database user. L'associazione al servizio remoto garantisce che la chiave pubblica nel certificato di proprietà dell'utente del database di origine autentichi i messaggi inviati al server di destinazione.The remote service binding guarantees that the public key in the certificate owned by the source database user will authenticate messages that are sent to the target server. Concedere le autorizzazioni CREATE QUEUE, CREATE SERVICE e CREATE SCHEMA all'utente del database di destinazione.Grant CREATE QUEUE, CREATE SERVICE, and CREATE SCHEMA permissions to the target database user.
Connettersi al database come utente del database di destinazione, se non è ancora stata eseguita questa operazione.If not already connected to the database as the target database user, do so now.
Creare una coda in cui ricevere i messaggi di notifica degli eventi e creare un servizio per il recapito dei messaggi.Create a queue to receive the event notification messages and create a service to deliver the messages.
Concedere l'autorizzazione SEND per il servizio di destinazione all'utente del database di origine.Grant SEND permission on the target service to the source database user.
Fornire l'identificatore di Service Broker del database di origine al server di destinazione.Provide the service broker identifier of the source database to the target server. È possibile ottenere questo identificatore eseguendo una query sulla colonna service_broker_guid della vista del catalogo sys.databasesThis identifier can be obtained by querying the service_broker_guid column of the sys.databases catalog view. Per una notifica degli eventi a livello di server, usare l'identificatore di Service Broker di msdb.For a server-level event notification, use the service broker identifier of msdb. Fornire l'identificatore di Service Broker del database di destinazione al server di origine.Provide the service broker identifier of the target database to the source server.

Passaggio 4: creare route e impostare l'autenticazione a livello di server.Step 4: Create routes and set up server-level authentication.

Completare le azioni seguenti nel server di origine e in quello di destinazione.Complete the following actions on both the source and target servers.

Server di origineSource server Server di destinazioneTarget server
Creare una route al servizio di destinazione e specificare l'identificatore di Service Broker del database di destinazione e il numero di porta TCP precedentemente concordato.Create a route to the target service, and specify the service broker identifier of the target database and the agreed-upon TCP port number. Creare una route al servizio di origine e specificare l'identificatore di Service Broker del database di origine e il numero di porta TCP precedentemente definito.Create a route to the source service, and specify the service broker identifier of the source database and the agreed-upon TCP port number. Per specificare il servizio di origine, utilizzare il servizio fornito seguente: http://schemas.microsoft.com/SQL/Notifications/EventNotificationService.To specify the source service, use the following supplied service: http://schemas.microsoft.com/SQL/Notifications/EventNotificationService.
Passare al database master per configurare l'autenticazione a livello di server.Switch to the master database to configure server-level authentication. Passare al database master per configurare l'autenticazione a livello di server.Switch to the master database to configure server-level authentication.
Creare una chiave master se non ne è presente una per il database master.If no master key exists for the master database, create a master key. Creare una chiave master se non ne è presente una per il database master .If no master key exists for the master database, create a master key.
Creare un certificato per l'autenticazione del database.Create a certificate that authenticates the database. Creare un certificato per l'autenticazione del database.Create a certificate that authenticates the database.
Eseguire il backup del certificato in un file accessibile al server di destinazione.Back up the certificate to a file that can be accessed by the target server. Eseguire il backup del certificato in un file accessibile al server di origine.Back up the certificate to a file that can be accessed by the source server.
Creare un endpointe specificare il numero di porta TCP precedentemente concordato, FOR SERVICE_BROKER (AUTHENTICATION = CERTIFICATE nome_certificato) e il nome del certificato di autenticazione.Create an endpoint, and specify the agreed-upon TCP port number, FOR SERVICE_BROKER (AUTHENTICATION = CERTIFICATE certificate_name), and the name of the authenticating certificate. Creare un endpoint e specificare il numero di porta TCP precedentemente concordato, FOR SERVICE_BROKER (AUTHENTICATION = CERTIFICATE nome_certificato) e il nome del certificato di autenticazione.Create an endpoint, and specify the agreed-upon TCP port number, FOR SERVICE_BROKER (AUTHENTICATION = CERTIFICATE certificate_name), and the name of the authenticating certificate.
Creare un account di accessoe specificare l'account di accesso del server di destinazione.Create a login, and specify the login of the target server. Creare un account di accesso e specificare l'account di accesso del server di origine.Create a login, and specify the login of the source server.
Concedere l'autorizzazione CONNECT per l'endpoint all'account di accesso dell'autenticatore di destinazione.Grant CONNECT permission on the endpoint to the target authenticator login. Concedere l'autorizzazione CONNECT per l'endpoint all'account di accesso dell'autenticatore di origine.Grant CONNECT permission on the endpoint to the source authenticator login.
Creare un utentee specificare l'account di accesso dell'autenticatore di destinazione.Create a user, and specify the target authenticator login. Creare un utente e specificare l'account di accesso dell'autenticatore di origine.Create a user, and specify the source authenticator login.

Passaggio 5: condividere i certificati per l'autenticazione a livello di server e creare la notifica degli eventi.Step 5: Share certificates for server-level authentication and create the event notification.

Completare le azioni seguenti nel server di origine e in quello di destinazione.Complete the following actions on both the source and target servers.

Server di origineSource server Server di destinazioneTarget server
Creare un certificato dal file di backup del certificato di destinazione, specificando l'utente dell'autenticatore di destinazione come proprietario.Create a certificate from the backup file of the target certificate, specifying the target authenticator user as the owner. Creare un certificato dal file di backup del certificato di origine, specificando l'utente dell'autenticatore di origine come proprietario.Create a certificate from the backup file of the source certificate, specifying the source authenticator user as the owner.
Passare al database di origine in cui creare la notifica degli eventi e connettersi come utente del database di origine, se non è ancora stata eseguita questa operazione.Switch to the source database on which to create the event notification, and if you are not already connected as the source database user, do so now. Passare al database di destinazione per ricevere i messaggi di notifica degli eventi.Switch to the target database to receive event notification messages.
Creare la notifica degli eventie specificare il servizio di Service Broker e l'identificatore del database di destinazione.Create the event notification, and specify the broker service and identifier of the target database.

Vedere ancheSee Also

GRANT (Transact-SQL) GRANT (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL) BACKUP CERTIFICATE (Transact-SQL)
sys.databases (Transact-SQL) sys.databases (Transact-SQL)
Gerarchia di crittografia Encryption Hierarchy
Implementazione di notifiche degli eventi Implement Event Notifications
CREATE MASTER KEY (Transact-SQL) CREATE MASTER KEY (Transact-SQL)
CREATE LOGIN (Transact-SQL) CREATE LOGIN (Transact-SQL)
CREATE USER (Transact-SQL) CREATE USER (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL) CREATE CERTIFICATE (Transact-SQL)
CREATE REMOTE SERVICE BINDING (Transact-SQL) CREATE REMOTE SERVICE BINDING (Transact-SQL)
GRANT (Transact-SQL) GRANT (Transact-SQL)
CREATE ROUTE (Transact-SQL) CREATE ROUTE (Transact-SQL)
CREATE QUEUE (Transact-SQL) CREATE QUEUE (Transact-SQL)
CREATE SERVICE (Transact-SQL) CREATE SERVICE (Transact-SQL)
CREATE ENDPOINT (Transact-SQL) CREATE ENDPOINT (Transact-SQL)
CREATE EVENT NOTIFICATION (Transact-SQL)CREATE EVENT NOTIFICATION (Transact-SQL)