Compartir a través de


Cómo configurar los servicios de destino para seguridad de diálogo anónima (Transact-SQL)

SQL Server utiliza la seguridad de diálogo para cualquier conversación con un servicio para el que existe un enlace de servicio remoto en la base de datos que aloja el servicio iniciador. Si el enlace de servicio remoto especifica ANONYMOUS = ON, el diálogo utiliza seguridad anónima. En este caso, no es necesario que la base de datos de destino contenga un usuario para el servicio iniciador. El servicio iniciador actúa como public en la base de datos de destino.

Para configurar un servicio de destino para seguridad de diálogo anónima

  1. Cree un usuario sin inicio de sesión.

  2. Cree un certificado para el usuario.

    [!NOTA] El certificado debe estar cifrado con la clave maestra. Para obtener más información, vea CREATE MASTER KEY (Transact-SQL).

  3. Realice una copia de seguridad del certificado en un archivo.

    ms166108.security(es-es,SQL.90).gifNota de seguridad:
    Realice la copia de seguridad sólo del certificado para este usuario. No realice ninguna otra copia de seguridad ni distribuya la clave privada asociada con el certificado.
  4. Conceda permiso al usuario del servicio de destino para recibir mensajes de la cola que utiliza el servicio de destino.

  5. Conceda permiso a PUBLIC para enviar mensajes al servicio de destino.

  6. Proporcione el certificado y el nombre del servicio de destino al administrador de la base de datos remota.

Ejemplo

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 ;

Vea también

Tareas

Cómo configurar permisos para un servicio local (Transact-SQL)
Cómo configurar los servicios iniciadores para seguridad de diálogo anónima (Transact-SQL)

Otros recursos

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

Ayuda e información

Obtener ayuda sobre SQL Server 2005