我们有一个旧的SQL Server 2000数据库,必须保留它,因为我们的制造机器需要它。它还维护我们的员工记录,因为这些机器上需要它们用于员工登录。
我们还有一个更新的SQL Server 10数据库(我认为这是 2008 年的,但我不确定)我们正在使用它进行更新的开发。
我找到了一个可以在 SO 上使用的查询来提取记录,但我必须首先链接这两个服务器。Microsoft 关于配置链接服务器的信息也对我帮助不大。
在 SF post SQL Server to SQL Server Linked Server Setup之后,我尝试添加链接。
在我们的SQL Server 2000机器上,我得到了这个错误:
同样,在我们的SQL Server 10机器上,我得到了这个错误:
这些消息虽然措辞不同,但可能说的是同一件事:我需要以某种方式进行身份验证。
我们有一个 Active Directory,但它位于另一台服务器上。
究竟应该在这里做什么?
一个人>>HERE<<说要检查安全设置,但没有说还可以做什么。两台服务器都设置为SQL Server 和 Windows 身份验证模式。
怎么办?
编辑:好的,蒂姆,我该怎么做呢?
查看管理工具 -> 组件服务 MMC,计算机 -> 我的电脑 - 分布式事务协调器 -> 本地 DTC -> 安全。
我被远程连接到 SQL Server 2000 机器上,但我看到的是:
编辑2:
因此,我无法在我们的旧 Windows 2000 Server(运行 SQL Server 2000)上找到它,但我确实在我们的 Windows 7 Server(运行 SQL Server 10)上找到了它。
我启用了设置,让服务重新启动,现在我正在做其他事情。
谢谢蒂姆!
在 SQL 2000 中配置链接服务器/分布式事务可能会有点麻烦,因为 SQL 2000 只支持匿名配置。这是一个已知的限制。
查看管理工具 -> 组件服务 MMC,计算机 -> 我的电脑 - 分布式事务协调器 -> 本地 DTC -> 安全。
启用网络 DTC 访问,允许远程客户端和远程管理。为交易设置“无需身份验证”框。
应该这样做。
我认为处理这个问题的最简单方法是在每台服务器(servera 和 serverb)上设置 2 个 SQL 登录(logina 和 loginb),并在彼此之间创建一个链接服务器。在 servera 上,您更改链接服务器 (serverb) 的属性并转到安全选项卡。将单选按钮更改为“使用登录的安全上下文创建”,然后将“loginb”的 un/pw 放在“远程登录”和“使用密码”选项中。
在 serverb 上,您更改链接服务器 (servera) 的属性并转到安全选项卡。将单选按钮更改为“使用登录的安全上下文创建”,然后将“登录”的 un/pw 放入“远程登录”和“使用密码”选项中。
这将允许您使用 logina 的凭据从 serverb 到 servera 进行查询,反之亦然。从那里您只需要向 server1 和 serverb 上的用户授予权限。
这种方法的缺点是任何有权访问 serverb 的人都可以更改 logina 可以访问的 servera 上的数据,反之亦然,但配置应该比使用组件服务更简单。如果您将赠款限制为仅供阅读,这将不是问题。