SSH wäre eine Möglichkeit. installiere auf dem Server z.B. openSSH und auf deinem Client z.B. Putty. Dann richtest Du in Putty sog. 'Tunnel' ein. Diese Tunnel 'routen' eine Verbindung auf deinem PC auf Port X rüber auf den PC mit
SSH und von dort zu einem anderen PC auf Port Y.
Szenario:
Dein
SQL-Server ist an
IP 123.123.123.123, dein Gateway hat die Internet-
IP 88.88.88.88. Vom Gateway zum
SQL-Server kann man sich über Port 12345 verbinden.
Dein PC ist am Internet. Deine
SQL-Clientblibliothek kann sich über Port 4444 mit einem
SQL-Server verbinden.
Putty verbindet sich mit 88.88.88.88 per
SSH. Hier musst Du dein Windows-Kennwort eingeben, mit dem Du dich auf dem Gateway einloggen kannst. Dein Tunnel ist so konfiguriert: Localer Port 4444 => Remoteport 12345 zu 123.123.123.123.
Mit dieser Konfiguration denkt und sieht dein
SQL-Client einen
SQL-Server an
localhost:4444. Denn Putty tunnelt diesen Port zum Gateway und das Gateway leitet das an die
IP 123.123.123.123 über Port 12345 weiter.
Du kannst natürlich auch identische Portnummern verbinden, also:
Localhost:12345--->tunnel--->Gateway--->123.123.123.123:12345
Dieses Portforwarding kann man auch häufig am Internetrouter einstellen. Wenn Du Zugriff auf den Router auf
SQL-Server-Seite hast, kannst Du dier das OpenSSH-Zeugs und Putty sparen und machst sog. 'Portforwarding'. Du stellst im Router einfach ein, das einkommende Verbindungen auf Port 4444 intern an die 123.123.123.123 auf Port 12345 weitergeleitet werden. Dann verbindest Du dich von deinem PC zum
SQL-Server einfach über 'Internet-
IP-der-Gegenstelle' an Port 4444. Dabei unbedingt einen sicheren Zugang zum
SQL-Server einrichten, also kein Standard-Password!