我在两台服务器之间设置服务代理。我正在实现的环境没有域。
两个SQL服务器服务在“NETWORK SERVICE”下运行
我收到以下错误消息
用户'NT AUTHORITY \ ANONYMOUS LOGON'的Service Broker登录尝试。失败并显示错误:'连接握手失败。登录'NT AUTHORITY \ ANONYMOUS LOGON'在端点上没有CONNECT权限。州84.'。
如果我将NT AUTHORITY \ ANONYMOUS LOGON添加到SQL服务器并授予连接权限,那么一切正常。
我不确定是否允许NT AUTHORITY \ ANONYMOUS LOGON是一个好主意。
谷歌的一些研究告诉我,我需要为Kerberos配置SPN,但我不知道这样做。
你可以帮忙,或者指点一篇好的文章来引用吗?
配置
SQL 2008 R2和Windows 2008
答案 0 :(得分:1)
答案 1 :(得分:1)
我在两台服务器之间设置服务代理。我正在实现的环境没有域名。
然后您应该使用基于证书的身份验证而不是Windows:
CREATE ENDPOINT [broker]
STATE = STARTED
AS TCP (LISTENER_PORT = 4022)
FOR SERVICE_BROKER (
AUTHENTICATION = CERTIFICATE [MyCertName]);
设置非常复杂,因为它涉及在主机之间交换证书,创建登录和用户以映射到其他主机并授予端点连接。然后,您还需要执行对话安全层。您可以在此处阅读How does Certificate based Authentication work,此博客将逐步说明如何执行此操作:A simple secure dialog with transport certificates。
请注意,即使错误消息是关于匿名登录,这也是不 Kerberos的“双跃点”问题(更好地称为约束委派)。