Condividi tramite


Procedura: Configurazione dei servizi di destinazione per la protezione anonima del dialogo (Transact-SQL)

SQL Server utilizza la protezione 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 protezione 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 protezione anonima del dialogo per il servizio di destinazione

  1. Creare un utente senza un account di accesso.

  2. 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).

  3. Eseguire il backup del certificato in un file.

    ms166108.security(it-it,SQL.90).gifNota sulla protezione:
    Eseguire questa operazione solo per questo utente. Non eseguire il backup della chiave privata associata al certificato, né distribuirla.
  4. Concedere all'utente del servizio di destinazione l'autorizzazione a ricevere messaggi dalla coda utilizzata da tale servizio.

  5. Concedere al ruolo public l'autorizzazione per l'invio di messaggi al servizio di destinazione.

  6. Fornire il certificato e il nome del servizio di destinazione all'amministratore del database remoto.

Esempio

USE AdventureWorks ;
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 di autorizzazioni per un servizio locale (Transact-SQL)
Procedura: Configurazione dei servizi di origine per la protezione anonima del dialogo (Transact-SQL)

Altre risorse

CREATE CERTIFICATE (Transact-SQL)
CREATE USER (Transact-SQL)
CREATE REMOTE SERVICE BINDING (Transact-SQL)
CREATE MASTER KEY (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005