sqlserver broker远端端点证书认证
1:采用windows验证的方法:
CREATE ENDPOINT InstInitiatorEndpoint STATE = STARTED AS TCP ( LISTENER_PORT = 4022 ) FOR SERVICE_BROKER (AUTHENTICATION = WINDOWS );
GO
在两个实例间各创建一个,采用windows验证,若两台计算机在同一个域内,则此时采用windows验证时足以的。
2:采用证书的方法验证
数据库间通信的证书等是存在于master数据库的,所以我们第一步要在master数据库创建主钥和证书,并且备份出公钥。
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的时候,需要与别的数据库进行端点间的访问,我们只用从四散不开始就可以了。
这就创建完成了。恩 还挺有成就感的
热衷于学习讨论MySQL和SQL Server,NoSQL等数据库技术,欢迎加入SQL优化群:659336691