Pagina 1 di 1

Gestionale && controllo accesso DB

Inviato: sab 28 mag 2011, 11:34
da tgmx
Ciao Ragazzi,
apro questa discussione solo per dare ed avere qualche spunto per un nuovo progetto che devo sviluppare.

Supponiamo di sviluppare un software aziendale utilizzato da più utenti (windows e non) degli uffici e che si appoggia ad un db MySql centrale.
Fino a qui niente di complicato (trascurando la questione Gestionale).

A me vengono in mente due possibili soluzioni per gestire gli accessi:
1) si chiede all'utente di effettuare il login e quelle credenziali sono utilizzata anche per il login al DB (quindi sono credenziali valide tra gli utenti del DB)
2) si codifica direttamente nell'applicazione il nome e password per l'accesso al DB (tutti i client usano le stesse credenziali) e all'utente viene chiesto un nome e password per effettuare un'autenticazione "software" (gestita dall'applicazione stessa).

Entrambe queste soluzione però hanno aspetti negativi che vorrei evitare:
1) l'utente è in possesso di username e password del db quindi se vuole (e se sa fare) apre ACCESS si connette al db e comincia a fare casini a mano sulle tabelle per cui è autorizzato in scrittura.
2) se devo o voglio cambiare dati di accesso al db devo ricompilare l'applicazione e distribuirla a tutti.

Nel caso (2) si potrebbe ovviare al problema mettendo le credenziali in un file di testo e facendo in modo che l'applicazione se le vada a pesca li dentro così se cambia l'utente del DB basta cambiare quel file. Ma se poi quel file viene "scoperto" diventano note nuovamente le credenziali del DB.


Si accettano soluzioni alternative.... :-)

Re: Gestionale && controllo accesso DB

Inviato: sab 28 mag 2011, 11:59
da slux
Il nostro gestionale usa il caso 2,con utente e password del Db in un file ini esterno.Ovviamente la password è criptata.

Re: Gestionale && controllo accesso DB

Inviato: sab 28 mag 2011, 12:14
da tgmx
slux ha scritto:Il nostro gestionale usa il caso 2,con utente e password del Db in un file ini esterno.Ovviamente la password è criptata.
La password viene decrittata da dentro l'applicazione, giusto? Quindi la chiave di decodifica è nel codice dell'applicazione?

Re: Gestionale && controllo accesso DB

Inviato: sab 28 mag 2011, 12:49
da slux
si ovvio

Re: Gestionale && controllo accesso DB

Inviato: dom 29 mag 2011, 11:57
da tgmx
Diciamo che a me piacerebbe di più la soluzione 1 perchè in quel modo potrei anche controllare (lato server ) quali tabelle un utente è autorizzato a leggere o scrivere ma mi sembra un po' troppo macchinoso nascondere per ogni utente la password da qualche parte e fargliene usare un'altra solo per l'accesso...

Mi sa che prendo per buona la tua soluzione... :-)

Re: Gestionale && controllo accesso DB

Inviato: dom 29 mag 2011, 21:13
da murdock
Io farei un'applicazione web che accede al db in base ad utenti configurati all'interno di un database a loro dedicato, in quest'ultimo assegnerei privilegi per l'accesso ai vari settori del gestionale.
Lo sconvenienza di ciò è solo il tempo di sviluppo.
Il grande pregio è che essendo web based elimini il problema delle piattaforme client.

Saluti,
MuRdOcK

Re: Gestionale && controllo accesso DB

Inviato: dom 29 mag 2011, 22:51
da tgmx
murdock ha scritto:Io farei un'applicazione web che accede al db in base ad utenti configurati all'interno di un database a loro dedicato, in quest'ultimo assegnerei privilegi per l'accesso ai vari settori del gestionale.
Lo sconvenienza di ciò è solo il tempo di sviluppo.
Il grande pregio è che essendo web based elimini il problema delle piattaforme client.

Saluti,
MuRdOcK
Questa soluzione l'ho messa da un po' nel mio TODO.txt per adesso richiederebbe troppo tempo e poi una parte dell'applicazione è già sviluppata.
A questo va aggiunto che non sono molto forte col web... :-D Me la cavo molto meglio nell'ambiente C++/Qt4 .

Re: Gestionale && controllo accesso DB

Inviato: lun 30 mag 2011, 11:18
da masalapianta
tgmx ha scritto:
murdock ha scritto:Io farei un'applicazione web che accede al db in base ad utenti configurati all'interno di un database a loro dedicato, in quest'ultimo assegnerei privilegi per l'accesso ai vari settori del gestionale.
Lo sconvenienza di ciò è solo il tempo di sviluppo.
Il grande pregio è che essendo web based elimini il problema delle piattaforme client.

Saluti,
MuRdOcK
Questa soluzione l'ho messa da un po' nel mio TODO.txt per adesso richiederebbe troppo tempo e poi una parte dell'applicazione è già sviluppata.
A questo va aggiunto che non sono molto forte col web... :-D Me la cavo molto meglio nell'ambiente C++/Qt4 .
se la premessa è sviluppare il client in c++ allora l'approccio meno peggio è sviluppare un semplice webservice che si occupi di fare le query e che dialoghi con il client c++ via soap; in tal modo la maggiorparte del codice sta nel client, il webservice è relativamente semplice da sviluppare e le password di accesso al db ce le ha il weservice e non i client (che possono fare solo determinate query preimpostate e non il cavolo che vogliono; devi solo stare attento a scrivere il codice del webvservice con criterio, per evitare sql injection)

Re: Gestionale && controllo accesso DB

Inviato: lun 30 mag 2011, 11:32
da tgmx
masalapianta ha scritto: se la premessa è sviluppare il client in c++ allora l'approccio meno peggio è sviluppare un semplice webservice che si occupi di fare le query e che dialoghi con il client c++ via soap; in tal modo la maggiorparte del codice sta nel client, il webservice è relativamente semplice da sviluppare e le password di accesso al db ce le ha il weservice e non i client (che possono fare solo determinate query preimpostate e non il cavolo che vogliono; devi solo stare attento a scrivere il codice del webvservice con criterio, per evitare sql injection)
Avevo pensato a qualcosa di simile tempo fa ma non avevo chiaro in mente come scambiare i dati tra client e server in modo rapido e facilmente aggiornabile.
Devo approfondire il discorso SOAP.

Grazie della dritta.