Procedura: Configurazione dei servizi di destinazione per la sicurezza anonima del dialogo (Transact-SQL)
SQL Server utilizza la sicurezza del dialogo per qualsiasi conversazione con un servizio per il quale esiste un'associazione al servizio remoto nel database che ospita il servizio di origine. Se l'impostazione ANONYMOUS dell'associazione al servizio remoto corrisponde a ON, per il dialogo viene utilizzata la sicurezza anonima. In questo caso non è necessaria la presenza di un utente per il servizio di origine nel database di destinazione, poiché tale servizio viene eseguito come public nel database di destinazione.
Per configurare la sicurezza anonima del dialogo per il servizio di destinazione
Creare un utente senza un account di accesso.
Creare un certificato per l'utente.
Nota
Il certificato deve essere crittografato con la chiave master. Per ulteriori informazioni, vedere CREATE MASTER KEY (Transact-SQL).
Eseguire il backup del certificato in un file.
Nota sulla sicurezza Eseguire questa operazione solo per questo utente. Non eseguire il backup della chiave privata associata al certificato, né distribuirla.
Concedere all'utente del servizio di destinazione l'autorizzazione a ricevere messaggi dalla coda utilizzata da tale servizio.
Concedere al ruolo public l'autorizzazione per l'invio di messaggi al servizio di destinazione.
Fornire il certificato e il nome del servizio di destinazione all'amministratore del database remoto.
Esempio
USE AdventureWorks2008R2 ;
GO
--------------------------------------------------------------------
-- This script configures security for a local user in the database.
-- The script creates a user in this database, creates a certificate
-- for the user, writes the certificate to the file system, and
-- grants permissions to the user. Since this service is a target
-- service, no remote service binding is necessary.
-- Create a user without a login. For convenience,
-- the name of the user is based on the name of the
-- the remote service.
CREATE USER [SupplierOrdersUser]
WITHOUT LOGIN;
GO
-- Create a certificate for the initiating service
-- to use to send messages to the target service.
CREATE CERTIFICATE [SupplierOrdersCertificate]
AUTHORIZATION [SupplierOrdersUser]
WITH SUBJECT = 'Certificate for the SupplierOrders service user.';
GO
-- Backup the certificate. Provide the certificate file
-- to the administrator for the database that hosts
-- the other service.
BACKUP CERTIFICATE [SupplierOrdersCertificate]
TO FILE = 'C:\Certificates\SupplierOrders.cer';
GO
-- Grant receive on the orders queue to the local user.
GRANT RECEIVE ON SupplierOrdersQueue
TO [SupplierOrdersUser];
GO
-- Grant send on the service to public.
GRANT SEND ON SERVICE::[SupplierOrders] TO public ;
Vedere anche
Attivitá
Procedura: Configurazione dei servizi di origine per la sicurezza anonima del dialogo (Transact-SQL)