Рейтинг:
1
OriginalGriff
На первый взгляд, вы не меняете IP - адрес на "публичный" IP: если он начинается с 192.168.nnn.nnn, то это локальный адрес, который никогда не покидает Вашу локальную сеть-Интернет-IP-адреса никогда не находятся в этом диапазоне.
Таким образом, если БД размещена в вашей сети, то "192.168.0.10" будет обращаться к вашему серверу с вашего dev PC, но может быть принтером или планшетом на клиентах.
Member 11793729
Спасибо за ответ, но я получил свой публичный IP - адрес из стороннего интернета и попробовал. Я не работал. Я использую SQL express & also developer editions. Они имеют к этому какое-то отношение ?
OriginalGriff
Старайтесь не использовать как можно меньше слов - мы получаем только то, что вы печатаете для работы, поэтому мы не получаем никакого контекста за пределами этого.
Таким образом, мы не знаем, что означает "я получил свой публичный IP-адрес из стороннего интернета и попытался", и что произошло, когда "я не работал", остается для нас загадкой.
Попытайтесь точно объяснить, где находится сервер БД, где находится компьютер, который вы успешно протестировали, и где находится клиент. Расскажите нам строку подключения, которую вы использовали для каждого компьютера - цензурируйте пароли, пожалуйста, - и что произошло, когда вы это сделали. Любые сообщения об ошибках-это определенный бонус!
Member 11793729
Извините или опечатка и искренняя благодарность за вашу помощь. Я получил публичный IP-адрес своей SQL-машины с некоторых веб-сайтов (все они показывают одно и то же). Я тестировал с этим публичным IP, но уволил ошибку, сказав, что сервер не найден. Я использую нижеприведенную строку подключения :
Дим SQLConStr как String = "источник данных=" &амп; VarServer &ампер; "," &амп; VarIPSQLPort &ампер; ";начальный каталог= " &амп; VarSQLDB &ампер; ";сохранять сведения о безопасности=true;в идентификатор пользователя=" &амп; IPSQLUID &ампер; ";пароль=" &амп; IPSQLPSS &ампер; ";Комплексная безопасность=ложь;"
Переменная VarServer consist = IP-адрес + имя машины + имя экземпляра SQL
OriginalGriff
Ах. Вы сами принимаете гостей. ОК...
Во-первых, проверьте свое интернет-соединение: это статический или динамический IP-адрес? Если вы не знаете, то это, вероятно, динамический - обычно вам приходится доплачивать своему провайдеру за статический IP. Динамичность-это плохо: если ваше соединение не работает, нет никакой гарантии, что вы получите тот же IP-адрес, когда маршрутизатор восстановит соединение. Итак, отключение питания, аппаратный сбой, что угодно - и ваши клиенты навсегда отключены.
Во-вторых, вы действительно уверены, что хотите это сделать? Это опасно - вы открываете свой сервер БД для всех в интернете, кто хочет "попробовать". Убедитесь абсолютно, что удаленный доступ-это то, что вам нужно, и измените регистрационную информацию для учетной записи администратора(ов), прежде чем что-либо делать: если вы оставите учетную запись по умолчанию "sa" живой, то вы заслуживаете всего, что получите ...
Теперь проверьте, включен ли "удаленный доступ" на вашем SQL server: если вы используете SQL Express, то, вероятно, это не так: https://blogs.msdn.microsoft.com/sqlexpress/2005/05/05/how-to-configure-express-to-accept-remote-connections/
Member 11793729
Ваш комментарий : "Вы уверены, что хотите это сделать? Это опасно" - данные строки подключения не передаются ни одному пользователю и сохраняются в зашифрованном виде. Файл приложения собирается при необходимости. Как ты думаешь, это небезопасно ? Что такое безопасная альтернатива удаленному подключению? Есть ограниченные, но разрозненные пользователи, которые будут подключаться из разных мест.
OriginalGriff
Вы думаете, что вам нужно сказать кому-то, кто вы есть, чтобы вас нашли? Или есть случайные шашки, которые найдут ваш сервер и попытаются увидеть, что у вас есть на нем? Помните, что это, вероятно, не только одна БД, которую вы размещаете на этом экземпляре SQL, поэтому все данные находятся под угрозой. Затем идет грубое форсирование паролей, эксплойты, неизвестные в настоящее время лазейки безопасности, удаленные обновления безопасности, DDoS-атаки ...
Это не очень хорошая идея, на самом деле это не так - особенно если вы не знаете, что именно вы делаете!
Я бы предложил либо VPN (хорошая идея, не так уж много работы), либо приложение WCF "man-in-the-middle" для контроля доступа. Прямой доступ обычно считается плохой идеей.
Рейтинг:
0
Member 11793729
Все они прекрасно работают с одной и той же сетью, используя IP-адрес, порт 1433, экземпляр имени и т. д. То же самое не работает, как только интернет - сеть изменяется для клиентской машины.
Wendelius
Это не только брандмауэр на вашей стороне, но и на стороне клиента и возможные брандмауэры между ними. Все они должны разрешать сетевой трафик на выбранные IP-адреса и порты.
Просто чтобы убедиться, что IP-адрес правильный, Вы пробовали пинговать базу данных со стороны клиента? Работает ли пинг?
Member 11793729
Спасибо за помощь. Вы правы, я попробовал ping, и он не работает, но работает для той же сети ( я думаю, что это использует IP-адрес локальной сети). Возможно, проблема с публичным IP-адресом.