Como configurar serviços de destino para segurança anônima de diálogo (Transact-SQL)
O SQL Server usa segurança de diálogo para qualquer conversa com um serviço para o qual existe uma associação de serviço remoto no banco de dados que hospeda o serviço inicial. Se a associação de serviço remoto especificar ANÔNIMO = ON, o diálogo usará segurança anônima. Nesse caso, não haverá necessidade que o banco de dados de destino contenha um usuário para o serviço iniciante. O serviço iniciante funciona como público no banco de dados de destino.
Para configurar um serviço de destino para segurança anônima de diálogo
Crie um usuário sem um logon.
Crie um certificado para o usuário.
Observação O certificado deverá ser criptografado com a chave mestra. Para obter mais informações, consulte CREATE MASTER KEY (Transact-SQL).
Faça backup do certificado em um arquivo.
Observação sobre segurança Só faça o backup do certificado deste usuário. Não faça backup nem distribua a chave privada associada ao certificado.
Conceda permissão para que o usuário do serviço de destino receba mensagens da fila que o serviço de destino usa.
Conceda permissão para que public envie mensagens ao serviço de destino.
Forneça o certificado e o nome do serviço de destino ao administrador de banco de dados para o banco de dados remoto.
Exemplo
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 ;
Consulte também