如何:設定匿名對話安全性的目標服務 (Transact-SQL)
對於裝載起始服務之資料庫中存在遠端服務繫結的服務,SQL Server 會對任何與該服務的交談使用對話安全性。如果遠端服務繫結指定 ANONYMOUS = ON,則對話會使用匿名安全性。在此情況下,目標資料庫不需要包含起始服務的使用者。起始服務充當目標資料庫中的 public。
若要設定匿名對話安全性的目標服務
建立不含登入的使用者。
為使用者建立憑證。
[!附註]
必須使用主要金鑰加密憑證。如需詳細資訊,請參閱<CREATE MASTER KEY (Transact-SQL)>。
將憑證備份至檔案。
安全性注意事項 僅備份此使用者的憑證。不要備份或散發與憑證相關聯的私密金鑰。
授與目標服務使用者從目標服務所使用的佇列接收訊息的權限。
授與 public 將訊息傳送至目標服務的權限。
將憑證和目標服務的名稱提供給遠端資料庫的資料庫管理員。
範例
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 ;