我真的需要创建一个证书来在sql server之间发送排队的消息吗? 我可以对两台服务器上的端点使用dbo身份验证吗?
create endpoint target
state = started
as TCP
(
LISTENER_PORT = 4022
)
FOR SERVICE_BROKER (AUTHENTICATION = CERTIFICATE ????, ENCRYPTION = ENABLED);
IF 我必须使用证书,我可以使用用户数据库证书而不是主证书吗?我该怎么做呢?
我现在不关心安全问题。两台服务器都在一个封闭的局域网上,无法访问互联网。
抱歉。我没有探查器。我正在使用sql express 2005.
CREATE ROUTE RoutetoTarget
WITH
BROKER_INSTANCE = 'xxxxxx-xxx-xx-x-x-x-x',
SERVICE_NAME = 'LOCALReceivingService',
< --- 仅适用于同一服务器上的实例。但是,一旦我添加了具有端口号的目标服务器IP(我在目标服务器上创建的端点),消息就会被发送到虚拟机中。他们从未进入其他服务器。
ADDRESS = 'TCP://targetipadress:PORT'
答案 0 :(得分:1)
我明白了。您需要为本地和远程服务至少拥有AUTHORIZATION DBO,确保端点中的所有加密,以及已发送的消息已关闭/禁用,最后,不要有主密钥。许多在线网站表示,如果没有加密的主密钥,Broker将无法运行,但在这种情况下似乎不是真的。
答案 1 :(得分:0)
您无需使用证书:
CREATE ENDPOINT ssb_target
STATE = STARTED
AS TCP
(
LISTENER_PORT = 4022
)
FOR SERVICE_BROKER
(
AUTHENTICATION = WINDOWS,
ENCRYPTION = DISABLED
)
GO
更多信息:link