Otwarcie serwera SQL na bezpośrednie połączenia zewnętrzne to pomysł, którego można uniknąć, jeśli możesz - znacznie zwiększasz widoczną powierzchnię do ataku, a wszelka komunikacja między tobą a serwerem (być może poza danymi uwierzytelniającymi w fazie uwierzytelniania) nie będzie zaszyfrowane. Jeśli musisz otworzyć port, upewnij się, że jest on otwarty tylko dla twoich stałych adresów IP (zakładając, że masz stałe adresy, które nie są udostępniane przez nikogo innego, tj. Nie korzystasz z usług dostawcy usług internetowych, który ma cię za aranżacją NAT, taką jak większość dostawców mobilnego internetu).
O wiele lepszą opcją byłoby zainstalowanie konfiguracji VPN (takiej jak na przykład OpenVPN ) lub usługi SSH ( Cygwinzawiera port wspólnego standardu OpenSSH, który obecnie finansuję, a także usługę w systemie Windows 2003 i 2008), przez którą można tunelować połączenie. W ten sposób SSH lub VPN obsługują zarówno uwierzytelnianie, jak i szyfrowanie oraz dodają (zakładając, że masz bezpieczne hasła / klucze) znaczącą warstwę ochrony, której nie miałby bezpośrednio otwarty port. Oferowane przez nich wsparcie kompresji pomoże skrócić czas odpowiedzi na zapytania zwracające więcej niż niewielką ilość danych. Konfiguracja oparta na SSHd może być łatwiejsza do skonfigurowania, szczególnie jeśli znasz już SSH, chociaż większość prawdziwych sieci VPN (takich jak OpenVPN) ma tę zaletę, że komunikacja nad nimi może przetrwać krótkie przerwy w komunikacji (jak utrata routera ADSL synchronizacja i ponowne łączenie). Opcja VPN jest również mniej kłopotliwa, jeśli na komputerze docelowym lub w witrynie docelowej działa wiele instancji serwera SQL. Obie metody z powodzeniem wykorzystałem do wielu rzeczy, w tym do rozmowy z SQL Server przy użyciu lokalnych wersji standardowych narzędzi i stwierdziłem, że działają one dobrze (chociaż wszystkie moje serwery OpenVPN działają w systemie Linux, ale powiedziano mi, że działa dobrze serwer również w systemie Windows).
Bezpośrednie połączenie się ze zdalną maszyną (wejściem) w ten sposób może być bardzo wygodne, ale należy pamiętać, że nawet przy starannej konfiguracji VPN zwiększasz liczbę komputerów, na które jest narażony Twój SQL Server, szczególnie jeśli jest to system produkcyjny z twoim rzeczywistych danych użytkownika, upewnij się, że poświęcasz czas, aby upewnić się, że maszyny, które widzą serwer przez VPN / tunel, są bezpieczne i same się nie zarażają (prawdopodobnie robisz to już oczywiście, ale zawsze warto to zrobić ponownie!).