Il titolo è praticamente auto esplicativo
Se un server SQL consente solo connessioni da localhost
, c'è un modo per accedere dall'esterno facendolo pensare che sto effettivamente accedendo da localhost
?
Risposta ovvia: crea una connessione locale.
In altre parole, a meno che lo stack di rete (del sistema operativo) non sia bacato, o qualcuno non correttamente configurato erroneamente ad es. i port forwarding sulla macchina su cui gira il database, l'unico modo per farlo è in realtà aprendo una connessione dalla macchina su cui gira il database.
Ora, nell'anno 2016, direi che sarebbe assolutamente inaccettabile offrire accessi non autorizzati basati solo sull'host - semplicemente non lo fai, dal momento che non ci sono costi per l'autenticazione .
Un modo corretto di fare rete "sicura" solo locale è di non usare socket IP, ma buoni socket unix, che possono essere protetti usando i normali sistemi di privilegio di accesso ai file.
Puoi creare un tunnel . Con SSH su Linux, sembrerebbe qualcosa come ssh -TNL "3306:localhost:3306" user@server
. Ciò renderebbe la porta 3306 del computer connettersi al computer remoto (tramite la porta 22) e inoltrare tutti i suoi pacchetti alla porta 3306 su quel computer come se provenissero dal suo localhost.
Leggi altre domande sui tag sql-server access-control