Newsgroup: it.comp.software.database
Titolo: Connessione DB remoto

Salve a tutti,
ho un applicativo in Access. Devo scrivere una procedura per
connettermi tramite internet ad un server SQL Server 2000 centrale e
compiere un'aggiornamento dei dati.
Quale strada mi consigliate di seguire??
Personalmente avevo pensato a scrivere un programmino server in java
che girasse su una macchina in DMZ nella sede dove risiede il server
SQL. Il client si connette via socket al serverino che gira le
richieste al database server. Client e server si parlano secondo un
protocolo molto semplice.
Altra ipotesi (consigliatami dal mio collega) è quella di scoprire la
porta di SQL server in azienda e di connettersi direttamente al
database server via ADO.
A me pare decisamente poco sicuro.
Quale strategia si adotta preferibilmente in questi casi??
Grazie
-- 
reintermediare processi front-end

 Grazie
Sicuramente non la seconda.
Usare una VPN?
Ciao
Matteo

Usare una VPN?
Infatti, cercavo conferme.
Non posso usare una vpn perchč il client va installato sulle
postazioni dei soci di un grossista.
Ogni giorno i soci devono poter aggiornare la propria base dati cosě
come farebbero per aggiornare un antivirus.
Nessuno ha avuto a che fare con situazioni simili?
Come vedi l'idea del server java?
-- 
reintermediare processi front-end

Come vedi l'idea del server java?
Io non sono esperto di SQL Server, ma perchè la soluzione della porta
dovrebbe essere insicura? Dato che c'è un pò questa remora anche con altri
db, mi chiedo dove stia l'insicurezza se:
1) La connessione è protetta
2) Il db ha password e permessi
3) Se proprio ci teniamo la connessione è anche ristretta per IP.
Quindi, o il db è un colabrodo, altrimenti non capisco perchè non
sfruttarlo.
Il server in java mi pare che non sposti il problema della trasmissione dei
dati.
Ciao.
Faser
-- 
FABIO SERRA
*Questo testo deve essere valutato secondo il senso della RFC-3*
Per rispondere in e-mail sostituire "invalid" con "faser"
--------------------

dati.
beh no, ma non č rilevante che i dati transitino in modo
crittografico. Invece la porta aperta di SQL server mi sembra piů
insicura.
-- 
reintermediare processi front-end

 compiere un'aggiornamento dei dati.
Puoi utilizzare zebedee, che permette di comprimere/crittografare
le comunicazioni tcp, e nel tuo caso puoi utilizzare anche una macchina
proxy che pubblica il tuo database server, in questo modo la macchina
sqlserver non sarebbe direttamente esposta, ed in più avresti
crittografia e compressione, se ti servissereo, e con Access credo
proprio che la compressione ti possa aiutare.
Zebedee è gratuito e lo trovi su :
http://www.winton.org.uk/zebedee/
Una documentazione 'easy' anche se per Firebird ti puo' essere
utile la trovi su:
http://www.ibphoenix.com/main.nfs?a=ibphoenix&l=;IBPHOENIX.PAGES;NAME='ibp_z
ebedee'
--
Marco Kregar
marco....@FirebirdSQL.it
www.FirebirdSQL.it
"over the bench the goat sings, under the bench the goat dies"

 A me pare decisamente poco sicuro.
Azz... un genio sto' collega.
/G

insicura.
Mi spieghi perchč? Se la connessione č sicura, se c'č un utente con una
password e con dei diritti che cosa potrebbe succedere?
Ciao.
ps: non č polemica, č proprio perchč non vedo il motivo, presumendo che SQL
Server (che conosco poco) sia a livello degli altri db server (cosa che
credo lo sia)


 credo lo sia)
non č un problema di SQL...
non puoi lasciare una macchina esposta al traffico pubblico.
/G

non puoi lasciare una macchina esposta al traffico pubblico.
Vabbč, mi fido anche se purtroppo non mi hai spiegato il perchč e cosa
potrebbe succedere.


 potrebbe succedere.
La mia paure sarebbero:
a) intrusione anche con password mega cazzute...
b) DoS su quella macchina (e su un dibbě non č proprio na ca%%ata)
/G

b) DoS su quella macchina (e su un dibbì non è proprio na ca%%ata)
Questo si.
Ciao.


credo lo sia)
tranquillo: nessuna polemica.
beh dunque - come hai anche scritto nei post piů sotto - c'č
differenza tra aprire un web server e un database.
La differenza č che il webserver lo metti in DMZ, zona appunto dove
prevedi di direzionare il traffico "pubblico" proveniente da internet
all'interno della tua azienda.
Se qualcuno cracka il webserver pace all'anima sua: rifai la macchina
in mezz'ora e ci rimetti il sito e non perdi niente.
Se qualcuno ti cracka il db server anche se hai le copie nessuno il
giorno dopo lavora in azienda e sono problemi di altro tipo.
Per quanto riguarda l'utilizzo di un tunneling ha ragione Giorgio.
Natuarlmente č possibile e questo garantirebbe sicurezza. Ma lo
scenario č diverso: ho un grossista per il quale gestisco il magazzino
(anzi io sono l'aiuto del mio collega il quale ha in gestione il
lavoro). Dal grossista vanno circa 100 soci per i quali č stato
pensato un software gestionale da installare sui pc nei loro negozi.
Tramite internet questi soci devono poter aggiornare la base di dati
che hanno in locale nelle loro postazioni nei loro negozi. Questi
signori possono essere modelizzari come il normale utente medio -->
cioč non capisco un cavolo di informatica e ti chiamano per dirti che
non si vede nulla sul monitor anche se non hanno inserito la spina !!!
-- 
reintermediare processi front-end

proprio che la compressione ti possa aiutare.
Una macchina proxy per pubblicare il db server? non va bene il mio
router linux con iptables ?
Grazie per il consiglio su zebedee. Ci darò un'occhiata.
-- 
reintermediare processi front-end

Ma la vedo dura in questo caso...
Java perchè sono laurendo in ingegneria informatica e lo conosco
abbastanza bene per via di diversi progetti per la facolta. il
software in questione l'ho già realizzato e perciò...
Di fatto volevo chiederti un paio di cose:
Sul NG it.comp.appl.access mi hanno consigliato un web service con
tunnel https.
Di fatto non è circa la stessa cosa di quello che avevo intenzione di
fare io ?
Non conosco bene i web services ma comunque mi sto documento e penso
di aver voglia di intraprendere questa strada perchè mi sembra essere
quella più conforme agli standard.
Approfitto per chiederti un'altra cosa che non mi è mai stata troppo
chiara.
Ammesso di avere configurato una rete con un router software con 3
schede di rete, connessione internet, dmz e lan.
Metto in DMZ in web server.
Tutte le connessioni pubbliche devono entrare solo in DMZ e nessuna
connessione deve poter tornare indietro nella lan.
In che modo è previsto in questo scenario che il web server comunichi
con il DB server in lan ???
Grazie per la risposta
-- 
reintermediare processi front-end

 con il DB server in lan ???
hai presente quella parolina magica "routing" ?
/G

 funziona...almeno spero :-)
 > Se dopo 5 volte l'account è bloccato hai finito. Ho provato varie
ipc$ su account di administrator... è una delle prime cose che si
provano in una macchina windows...
/G

non si vede nulla sul monitor anche se non hanno inserito la spina !!!
Il mio posto, magari provocatorio, era per dire che aprire il db in
determinate connessioni, non è assolutamente una bestemmia come molti
ritengono e può essere completamente sicuro fin quando ti fidi del sistema
operativo e del database. Poi starà a te valutare vantaggi e svantaggi. Ma,
insisto, con una connessione ssh il sistema è sicuro. Altrimenti non si
amministrerebbe neanche una macchina da remoto.
Ciao.


provano in una macchina windows...
E' una conferma a quello che dico io. Il firewall come patch.


incapsulare il tuo protocollo nell'http... e gestirti le rpc soap..
In pratica si, però in teoria puoi utilizzare qualunque protocollo. Ci sono
alcuni webservices che usano smtp.


quella più conforme agli standard.
Un web service ha senso se sviluppi un'applicazione a tre livelli ed i
client possono essere di tutti i tipi e nei linguaggi più disparati. Puoi
avere un client in Delphi, una in Java ed uno in VB ed ognuno in modo
standard e semplice può usare il web service.
Altrimenti IMHO allo stato attuale ha vari svantaggi. in primo luogo che
scambiarsi oggetti complessi non è ancora ben definito e poi che rientri in
una logica stateless di chiamata/risposta. Non è come aprirsi un socket.
Secondo me la prima cosa che devi decidere è se fare un'applicazione a due
o tre livelli. Poi viene il resto. La tua idea del proxy sposta il problema
della sicurezza dal database al tuo proxy. In pratica ti fidi più del tuo
proxy che del db :-) Sempre IMHO, sia chiaro.


hai presente quella parolina magica "routing" ?
D'accordo per il routing, ma non č questo che intendevo. Sono in grado
di configurare il firewall (uso iptables) per gestire dmz e lan con le
opportune regole di routing. Quello che volevo sapere č: solitamente
niente entra nella lan da internet e dalla dmz. In questo modo se il
web server (che č anch'esso in dmz) parla col db server violerebbe
questa regola generale. Cosa mi sfugge ?
Mi rendo conto che stiamo andando OT comunque.
Magari spostiamoci altrove.
Grazie.
-- 
reintermediare processi front-end

 router linux con iptables ?
Certo che va bene...ci monti zebedee e tieni il database su
un'altra macchina..
