sqlserver broker远端端点证书认证
1:采用windows验证的方法:
CREATE ENDPOINT InstInitiatorEndpoint STATE = STARTED AS TCP ( LISTENER_PORT = 4022 ) FOR SERVICE_BROKER (AUTHENTICATION = WINDOWS );
GO
在两个实例间各创建一个,采用windows验证,若两台计算机在同一个域内,则此时采用windows验证时足以的。
use master
go --master key create master key encryption by password=\'!@#masterkey249\'; --certificate create certificate broker_private_249_cer with subject=\'for 249\', start_date=\'11/11/2009\',expiry_date=\'11/11/2111\';
backup certificate broker_private_249_cer to file=\'c:\cert\broker_public_249_cer.cer\';
第二步创建端点和证书绑定(此处绑定的证书是自己创建的私钥)
CREATE ENDPOINT [broker_249_endpoint] AUTHORIZATION [sa] STATE=STARTED AS TCP (LISTENER_PORT = 4022, LISTENER_IP = ALL) FOR SERVICE_BROKER (MESSAGE_FORWARDING = ENABLED , MESSAGE_FORWARD_SIZE = 10 , AUTHENTICATION = CERTIFICATE [broker_private_249_cer] , ENCRYPTION = DISABLED)
create login broker_243_login with password=\'qsmc+12345\'; create user broker_243_user for login broker_243_login;(产生映射关系)
第四步:将对方备份出来的公钥拷贝到自己的服务器端,并且进行绑定
create certificate broker_public_243_cer authorization broker_243_user from file=\'c:\cert\broker_public_243_cer.cer\';
将刚刚创建的用户进行绑定,并且创建一个certificate (授权)
grant connect on endpoint::broker_249_endpoint to broker_243_login;
切记一点:一个数据库实例只能够有一个service broker的端点:endpoint,当我们建立已经有endpoint的时候,需要与别的数据库进行端点间的访问,我们只用从四散不开始就可以了。