我在 excel 中有一个程序,它使用服务器名称和实例连接到多个 sql 服务器。我的问题是,如果同一网络中有两台具有相同服务器名称的服务器(机器)会发生什么?这可能吗?
如何预防这种情况?
使用 IP 连接比使用服务器名称连接更安全吗?
答案1
在非常特殊的情况下,您会有多个服务器响应同一个名称。但是,每个服务器仍然有自己的名称,不能共享。
如果您尝试将两者设置为相同的名称,那么您要么会随机连接到一个服务器,要么其中一个服务器会“自行”使用该名称,而另一个服务器将会失败。
通常,通过 IP 进行连接是不好的,因为 IP 比主机名更改更频繁。这就是主机名的意义所在:提供通过有意义的名称定位 IP 的能力,以便 IP 可以根据网络需求进行更改。
答案2
当两台 Windows 计算机位于同一个域中时,它们显然不能拥有相同的主机名。这是不允许的。
如果它们位于一个工作组中,或者在不同的域中,您可以为它们指定相同的名称,但是它们一找到彼此就会开始抛出错误;但是,如果它们位于不同的 IP 子网中,则它们无法发现这一点,因此它们会很乐意继续使用相同的主机名。
现在,关于尝试访问它们的所有其他计算机。将主机名映射到 IP 地址是由 DNS 完成的;因此,即使您有两个同名的服务器,您实际连接的服务器将是 DNS 中注册的服务器,而另一个服务器根本就不会使用。除非您有重复的 DNS 条目;在这种情况下,您连接到每个服务器的几率为 50%。