%20%D0%B2%20%D0%BE%D0%B4%D0%BD%D0%BE%D0%B9%20%D1%81%D0%B5%D1%82%D0%B8%3F%20.png)
У меня есть программа в Excel, которая подключается к нескольким серверам SQL с помощью servername и instance. Мой вопрос: что произойдет, если в одной сети будет два сервера (машины) с одинаковым servername? Возможно ли это?
Как это можно предотвратить?
Безопаснее ли подключаться по IP, а не по имени сервера?
решение1
В очень особых обстоятельствах у вас есть несколько серверов, которые отвечают на одно и то же имя. Однако каждый сервер все еще имеет свое собственное имя, которое не может быть общим.
Если вы попытаетесь задать для обоих серверов одинаковое имя, то либо вы будете случайным образом подключаться к одному из них, либо к другому, либо один из них просто «заберет» себе имя, а другой потерпит неудачу.
Обычно подключение через IP плохо, потому что IP-адреса меняются чаще, чем имена хостов. В этом и заключается смысл имени хоста: предоставить возможность найти IP-адрес по осмысленному имени, чтобы IP-адрес мог меняться в зависимости от потребностей сети.
решение2
Когда два компьютера Windows находятся в одном домене, они просто не могут иметь одно и то же имя хоста. Это не допускается.
Если же они находятся в рабочей группе или в разных доменах, вы можете назвать их одним и тем же именем, но тогда они начнут выдавать ошибки, как только обнаружат друг друга; однако, если они находятся в разных IP-подсетях, у них нет возможности это обнаружить, поэтому они с удовольствием продолжат использовать одно и то же имя хоста.
Теперь о всех остальных компьютерах, пытающихся до них добраться. Сопоставление имени хоста с IP-адресом выполняется DNS; таким образом, даже если у вас есть два сервера с одинаковым именем, тот, к которому вы фактически подключаетесь, будет зарегистрированным в DNS, а другой просто никогда не будет использоваться. Если только у вас нет дублирующих записей DNS; в этом случае у вас будет 50% шанс подключиться к каждому серверу.