Amministrare con Access in locale un MySQL remoto tramite SSH Tunneling

Ci sono molte aziende che hanno enormi difficoltà a cambiare il loro modo di lavorare.
Se un impiegato ha imparato a lavorare con Microsoft Access, la dirigenza spesso preferisce far ruotare tutto su questo punto fermo, piuttosto che costringere ad un corso di formazione.
Mettiamo che si voglia quindi gestire tutto o parte di database online MySQL tramite la nota interfaccia di Access in locale.
Il problema più grande è che MySQL viene sempre configurato in modo da non accettare connessioni da remoto ma solo da localhost (o al massimo da un IP trusted).
Soluzione: abbiamo bisogno di fare SSH tunneling

  • scarichiamo Putty e Plink dal sito di Putty e mettiamoli entrambi in una stessa cartella
  • apriamo una shell di comando (per Windows 7 basta scrivere “cmd” e  fare invio nella casellina di ricerca del menù)
  • navighiamo fino alla cartella dove abbiamo messo i programmi e diamo questo comando
    plink -L 3307:localhost:3306 username@miodominio.it
    3307 è la porta locale cui ci connetteremo
    3306 è la porta remota di MySQL (raramente viene utilizzata un’altra porta)
    username è l’utente SSH
    miodominio.it identifica il server dove gira MySQL (può essere un dominio o un IP)
  • si avvierà una finestra terminale da Putty in cui ci viene chiesta la password (se tutto ok, un suono ci avvertirà dell’avvenuta creazione del tunnel)

Per collegare Access tramite il tunnel SSH (ho lavorato su un Access in inglese ma credo si capiscano i comandi)

  • se non lo si è già fatto scaricare e installare i driver Connector/ODBC (attenzione nella scelta tra 32 e 64 bit)
  • aprire Access e creare un nuovo db (è possibile usare anche un db già creato)
  • clic su File -> Get External Data -> Link Tables
  • nella scelta del tipo di link scegliere ODBC Databases ()
  • si aprirà una finestra, cliccare sul tab Machine Data Source e poi su New
  • si aprirà una nuova finestra, questa volta del Connector/ODBC
    1. immettiamo un nome qualsiasi per Data Source Name
    2. nella casella Server mettiamo il dominio o l’IP
    3. lasciamo vuota la casella di MySQL database name
    4. in User e Password immettiamo quelle di root
    5. Cliccando su Test il menù a discesa Database si popolerà dei db raggiungibili
    6. Scegliamo il db da collegare e clicchiamo OK
    7. A questo punto possiamo scegliere se importare tutte o solo alcune delle tabelle MySQL remote

Nota Bene: ho lavorato usando la versione XP di Microsoft Access. Non credo che le versioni successive siano troppo diverse.