Collegare Fe a BE con password

di il
51 risposte

51 Risposte - Pagina 3

  • Re: Collegare Fe a BE con password

    30/04/2023 - fratac ha scritto:


    Per scoraggiare eventuali manettoji, potresti crittografare il db, ptoteggerlo con password utente, usando le funzioni ed i permessi gia forniti da access.

    tutto questo l'ho fatto, ma io volevo proteggere il BE dove ci sono i dati sensibili;  

    La demo è di Alex che mi aveva messo a disposizione in un precedente post si trova qui

    https://www.iprogrammatori.it/forum-programmazione/access/utenti-con-permessi-aggiungi-elimina-modifica-differenziati-t51654.html

    grazie per l'interessamento

  • Re: Collegare Fe a BE con password

    Forse quella rs.close e la riga seguente sono un refuso. Eliminale perché sono ripetute.

    Ma incontrerati altri problemi, ovunque ci sia una IN seguita dal nome del file che dovrai cambiare

    IN ‘’ [Ms Access;PWD=123;DATABASE=" & …. & “]”

    Insomma con qualche aggiustamento qui e lì dovrebbe andare

  • Re: Collegare Fe a BE con password

    Hm….

    Sto testando ora il database.

    Non ho ancora dato un occhiata al codice, ma secondo me, non ha bisogno di modifiche o almeno non ha bisogno di modifiche relative alle password.
    Basta che aggiungi le tue tabelle e maschere a questo database, disabiliti quello che non ti occorre e poi aggiungi le tue tabelle e le tue maschere nella gestione dei permessi.

    Alcuni errori che ho riscontrato, riguardano inesattezze dovute al fatto che è una demo.

    Infatti, se si accede con un utente che non abbia i permessi giusti, si generano errori, perchè da codice vengono aperte subito le maschere, e se non si hanno i permessi, access genera un errore che ti porta al debug.

    Nulla però che non si risolve con una gestione degli errori.

    Non capisco perchè devi aggiungere del codice per la gestione delle password e dei permessi, quando già esiste.

  • Re: Collegare Fe a BE con password

    Probabile refuso come dici tu

    adesso mi ritrovo quello che tu prevedevi

    strSQL = strSQL + "FROM " & DB_PERMESSI & " IN '" & getConnectionString() & "' "

    che vado a sostituire con

    getConnectionString = "MS Access;PWD=123;DATABASE=" & CurrentProject.Path & "\" & DB_SERVER

    che mi diventa errore di compilazione

    strSQL = strSQL + "FROM " & DB_PERMESSI & " IN " ["MS Access;PWD=marco;DATABASE=" & CurrentProject.Path & "\" & DB_SERVER "]"
  • Re: Collegare Fe a BE con password

    Scusami, ma alex usa  un algoritmo di crittografia per le password.

    Tu invece stai cercando di usarla in chiaro. Forse è per questo che non ti funziona, e poi ti si generano gli errori, a causa del fatto che è una demo e quindi va rifinita, come ho già detto, per quanto riguarda l'apertura diretta di maschere, senza avere i giusti permessi.

  • Re: Collegare Fe a BE con password

    Non dimenticare i due apici dopo IN "

    strSQL = strSQL + "FROM " & DB_PERMESSI & " IN " '' ["MS Access;PWD=marco;DATABASE=" & CurrentProject.Path & "\" & DB_SERVER "]"
  • Re: Collegare Fe a BE con password

    Fratac        Non capisco perchè devi aggiungere del codice per la gestione delle password e dei permessi, quando già esiste.

    a me interessa che BE sia protetto da Password ed essere aperto facendo il login da FE per poi linkare,come da demo, le tabelle presenti in BE

    Dalle mie prove il linkaggio è in chiaro, mentre le passw utente sono criptate

  • Re: Collegare Fe a BE con password

    30/04/2023 - oregon ha scritto:


    strSQL = strSQL + "FROM " & DB_PERMESSI & " IN " '' ["MS Access;PWD=marco;DATABASE=" & CurrentProject.Path & "\" & DB_SERVER "]"

    ma i due apici dopo IN non escludono quello che segue?

    comunque sempre user e passw errati

  • Re: Collegare Fe a BE con password

    Ma il back end si trova sullo stesso pc o è un percorso di rete?

    Inoltre il back end, anche se protetto da password, per uno smanettone, sarebbe relativamente semplice da aprire ed avere accesso a tabelle e dati.

    Il back end lo devi proteggere impedendo l'accesso alla cartella o al file con i permessi utente di windows, in modo che non possa essere aperto da nessuno, se non da uno specifico utente windows che si dovrà autenticare tramite il front end.

  • Re: Collegare Fe a BE con password

    Tutto sullo stesso pc

    come dicevo in precedenza il programma dovrò donarlo, In teoria dovrebbe essere utilizzato da una sola persona. Vorrei solo scoraggiare eventuali curiosoni smanettoni.  Il contenuti si limita a battesimi …… (dati un pò sensibili). Quello che tu suggerisci non è alla mia portata, 

  • Re: Collegare Fe a BE con password

    30/04/2023 - clamasa ha scritto:


    Tutto sullo stesso pc

    come dicevo in precedenza il programma dovrò donarlo, In teoria dovrebbe essere utilizzato da una sola persona. Vorrei solo scoraggiare eventuali curiosoni smanettoni.  Il contenuti si limita a battesimi …… (dati un pò sensibili). Quello che tu suggerisci non è alla mia portata, 

    Scusami ma a questo punto, non hai bisogno di un FE e di un BE, non hai bisogno di creare altri utenti, non hai bisogno di creare permessi.

    Hai un semplice database su un unica macchina che sarà usato da una sola persona.

    Proteggi il database con una password criptografata, disabiliti il pannello di navigazione e l'avvio con il tasto shift ed hai risolto il problema.

    Se poi qualcuno scopre la password,  oppure la persona che deve usarlo, consente a terze parti di usare il database, il problema non è di certo il tuo.
    Se qualcuno entra in un archivio cartaceo, perchè il proprietario gli da la chiave, il problema non è di certo del fabbro che ha montato la serratura.
    Quello che vorresti realizzare, è una cosa complessa e soprattutto con access, non sicura al 100%.
    E tra parentesi, non mi sembra che sia la soluzione che stai adottando. Proteggi l'unico FE, ma se io malintenzionato, apro il back end, praticamente ho accesso a tutti i dati contenuti nelle tabelle. E visto che il BE si trova nella stessa cartella del front end, praticamente è un gioco da ragazzi.
    Inoltre se non riesci a settare l'accesso al database semplicemente usando i permessi utenti, perchè è al di la delle tue competenze, dove devi solo spuntare delle check box sul pannello di amministrazione di access e di windows, la vedo molto complicata riuscire a fare quello che vuoi realizzare con il vba.

    Praticamente che cosa vuoi proteggere esattamente? Il FE o il BE?
    Perchè se vuoi proteggere il BE, prima devi impostare una password, in modo che non possa essere aperto accidentalmente da nessuno.
    Poi da FE devi accedere al BE con la password di criptata. E l'accesso sarà identico per tutti gli utenti, indipendentemente dai privilegi.
    Una volta che avrai fatto la connessione tra FE e BE, tramite password, da FE, dovrai far loggare l'utente con nome utente e password personalizzati che andranno a personalizzare le tabelle e le maschere a cui dovrà avere accesso.

    E non mi sembra che sia quello che stai facendo in questo momento.
    E se lo stai facendo, stai mischiando il codice della demo, (che fa solo la seconda parte di quello che ho detto) con il codice che invece ti occorre per accedere al BE. O meglio, il codice che fa connettere il FE, con il BE tramite una password indipendentemente dall'utente.

  • Re: Collegare Fe a BE con password

    Il gestionale nel complesso ha tante funzioni che con l'uso dei permessi vorrei calibrare e non rendere totalmente disponibilie Il problema che mi si è presentato è in seguito alla protezione del  BE con una password  . Perchè non  provate a inserire al db (serverxp) una passw e  fare il login dopo aver modificato il modulo basglobal con le stringhe poste in precedenza? 

  • Re: Collegare Fe a BE con password

    30/04/2023 - clamasa ha scritto:


    Il gestionale nel complesso ha tante funzioni che con l'uso dei permessi vorrei calibrare e non rendere totalmente disponibilie Il problema che mi si è presentato è in seguito alla protezione del  BE con una password  . Perchè non  provate a inserire al db (serverxp) una passw e  fare il login dopo aver modificato il modulo basglobal con le stringhe poste in precedenza? 

    allora avevo capito bene.

    Non devi modificare il codice dal basglobal, ma devi creare del nuovo codice che ti facciano connettere FE e BE usando la password.

    Poi una volta che avrai fatto la connessione, usare la demo di Alex, ma senza riconnetterti al BE.

     la connessione che crei tra FE e BE, non ha bisogno dell'user, perchè non esiste. Dovrà avere solo la password del BE e sopratutto, non dovrai ripetere la connessione quando imposti il nome utente e relativa password, altrimenti access tenterà di riconnettersi con un nome utente e soprattutto con una password sbagliata, che non è quella che autorizza l'apertura del BE.

    In pratica la connessione tra FE e BE dovrebbe essere fatta con una istruzione simile a questa:

    Set dbs = OpenDatabase(Me.txt_NomeFile, False, False, Pwd)

    una volta connesso andrai a far connettere l'utente giusto, ma senza ripetere la connessione

  • Re: Collegare Fe a BE con password

    Hai perfettamente centrato le mie intenzioni

    Ho impostato proprio come tu descrivi e cioè  si accede da FE tramite login personalizzati che si collega al BE .  Quello che non riesco è accedere al BE protetto

  • Re: Collegare Fe a BE con password

    30/04/2023 - fratac ha scritto:


    30/04/2023 - clamasa ha scritto:


    Il gestionale nel complesso ha tante funzioni che con l'uso dei permessi vorrei calibrare e non rendere totalmente disponibilie Il problema che mi si è presentato è in seguito alla protezione del  BE con una password  . Perchè non  provate a inserire al db (serverxp) una passw e  fare il login dopo aver modificato il modulo basglobal con le stringhe poste in precedenza? 

    allora avevo capito bene.

    Non devi modificare il codice dal basglobal, ma devi creare del nuovo codice che ti facciano connettere FE e BE usando la password.

    Poi una volta che avrai fatto la connessione, usare la demo di Alex, ma senza riconnetterti al BE.

     la connessione che crei tra FE e BE, non ha bisogno dell'user, perchè non esiste. Dovrà avere solo la password del BE e sopratutto, non dovrai ripetere la connessione quando imposti il nome utente e relativa password, altrimenti access tenterà di riconnettersi con un nome utente e soprattutto con una password sbagliata, che non è quella che autorizza l'apertura del BE.

    In pratica la connessione tra FE e BE dovrebbe essere fatta con una istruzione simile a questa:

    Set dbs = OpenDatabase(Me.txt_NomeFile, False, False, Pwd)

    una volta connesso andrai a far connettere l'utente giusto, ma senza ripetere la connessione

    La situazione è più chiara adesso su come procedere, ma si complica dal punto di vista operativo. Speriamo bene- Grazie

Devi accedere o registrarti per scrivere nel forum
51 risposte