Newsgroup: it.comp.appl.access
Titolo: Password Utente per Db

Il cliente mi ha chiesto di poter accedere con una Password
Siccome vorrebbe modificarla ogni mese vorrei evitare di impostare la password con la procedura offerta da Access (Aprire in modalità esclusiva etc...)
Mi stavo inventando qualcosa...Una form "ImmettiPass" e una tabella nascosta... ma prima di cimentarmi volevo qualche dritta su questo argomento.
Magari qualcosa di Livello sicurezza basso... tanto non siamo alla NASA!...

La procedura di Access ovviamente non può essere usata, ma si può gestire la cosa da VBA...
 
https://docs.microsoft.com/en-us/previous-versions/office/developer/office2000/aa141813(v=office.10)
 
 
Attenzione al fatto che serve aprire in modalità Esclusiva... e qui viene il problemino... 
 
Alternativa è come dicevi una gestione LOCALE sempificata che puoi fare in 2 modi:
1) Tabella Locale 
2) Il Registry accessibile da VBA con GetSetting e SaveSetting
 
Ti crei una Form(LOGIN) che chiede la PWD, la confronti con quanto salvato in Tabella(leggibile con DlookUp) o con GetSetting, e se la metti giusta attivi la possibilità di cambiarla, e la sovrascriverai, oppure chiudi ed apri la Form principale...!
 
Saluti
@Alex


non sei alla NASA ma almeno un minimo di sicurezza impone di non 
salvarla in chiaro ma almeno criptarla con un algoritmo decente prima di 
salvarla in una tabella che può anche non essere nascosta
 
O meglio ancora usare l'autenticazione a due fattori
 
 
ciao
BFS


Ciao F
Mentre studio quanto suggerito da Alex ...
Criptata... Come si fa?....


si prende un algoritmo che prende in input la tua password e la 
trasforma in una stringa indecifrabile in output
ovviamente è l'output che viene salvato nel campo della tabella
 
Deve esserci oviamente anche l'algoritmo di decriptazione che in input 
riceve la stringa criptata e la trasforma in stringa leggibile da 
confrontare con la psw inserita
 
un esempio ridicolo ma per farti capire il concetto è un algoritmo che 
preso in input "topolino" salva nella tabella "onilopot"
Chiunque comprende al volo cosa fa questo algoritomo e quindi le psw 
sarebbero facilmente ricavabili
 
Quindi o questi due algoritmi li inventi tu, ma te lo sconsiglio, o ne 
scegli di robusti e conosciuti.
Oppure acquisti la pappa pronta da siti tipo:
 
https://www.cryptosys.net/
 
 
Se poi vuoi aggiungere anche il doppio fattore,
una volta che la psw inserita è corretta invia un sms con un OTP al 
cellulare di chi deve fare il login e faglielo inserire sulla maschera 
di login
 
io mi appoggio a skebby per l'invio di sms da codice vba e i costi sono 
buoni
 
tutto va contestualizzato a cosa devi proteggere, ovvio che se è il 
database delle ricette della nonna, basta anche una psw in chiaro
 
ciao
BFS
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Tieni sempre a fuoco il livello a cui intendi basarti... 
 
Ci sono le API si Windows che fanno un ottimo lavoro anche a livello professionale:
 
https://stackoverflow.com/questions/40748130/adapt-crypto-api-vba-to-use-with-access-2010-64-bit
 
 
https://www.cryptosys.net/apiexcel.html
 
 
Il primo link è per 64Bit... il secondo include la compilazione condizionale ed è meno complesso... ma non meno sicuro.
 
@Alex


Buongiorno.
Fatto quasi tutto...
mi sono accorto però che il confronto tra le due stringhe (Form-Tabella), giustamente, non fa distinzione tra maiuscole e minuscole. 
Per controllare questa differenza c'è qualche diavoleria da passare alla routine o ci vuole una routine che controlli ogni singolo carattere?

Certo come fai il confronto...?
 
Devi usare questo:
StrComp(str1, str2, vbBinaryCompare)
 
@Alex

gabria...@gmail.com
 laid this down on his screen :

Si fa anche così:
 
1 - stabilisci una PSW anche semplicissima, per esempio 123.
2 - quando la digiti in presenza di estranei puoi anche digitare
    20 o 30 caratteri alfanumerici purché internamente ad essi
    vi sia la sequenza 123, per esempio 1840530412345825444452487...
    Così puoi anche stupire mostrando una memoria di ferro!
    Puoi anche stabilire che la PSW sia intervallata da uno o più
    caratteri che ti inventi al momento: 428142839...
3 - devi poi aver scritto quattro righe di programma che verifichi
    se esiste nel mucchio la sequenza 123 ovvero 1x2y3...
 
Naturalmente il codice VBA dovrebbe essere protetto come lo è
in un file MDE.
 
Bruno


 Ah ah ah ah ! Buona questa ! :-) 
Dovrò studiarci! 
Grazie :-)